-2

重複の可能性:
Ajax 後の Javascript

DOM で Javascript コードを使用したい。

私はこの要求を持っています:

function ajaxrequest(str){

    var aircraft = $("#resultdiv");
        aircraft.load("./file.php?icao="+str, function(){
        });
    }

そして、file.php にこの JavaScript コードがあります。

<script>
    function example(){

            var id = document.getElementById('id').value;
                    $("div2").text(id);
        }
    </script>

JavascriptをDOMから正しく実行するにはどうすればよいですか? これをDOMで行う場合。var id = document.getElementById('id').value;動作しません。

@charlietflこれは HTML コードです

<div id="editaircraftdialog" style="width: auto; min-height: 100px; height: auto;" class="ui-dialog-content ui-widget-content" scrolltop="0" scrollleft="0"><input id="id" value="foo">
<input id="editaircraft" type="submit" value="Edit Aircraft">

<div id="div2"></div></div>

これはファイルのコードです:

<input id="id" value="foo"/>
<tr><td><input id="editaircraft" type="submit" value="Edit Aircraft"></td></tr>
<script>
$("#editaircraft")
                .find('button') /* ??? */
                .click(editForm);
function editForm(){
var id = document.getElementById('id').value;
$("div2").text(id);
}

</script>
<div id="div2"></div>
4

1 に答える 1

0

リモート ファイル内のスクリプトが探している html の前に配置されている場合、html が存在する前にスクリプトが実行されるため、スクリプトは見つかりません。html とスクリプトの順序を逆にすると、スクリプトがそれを見つけようとする前に html が存在することになり、動作します。

document.readyこれは、readyイベントがメイン ページで既に発生しているため、コードが でラップされていても当てはまります。

また、リモートファイルに表示されるスクリプトは関数ですが、その関数の呼び出しは表示されません

動作しません:

<script> var id = document.getElementById('id').value;</script>
<input id="id" value="foo"/>

動作します:

<input id="id" value="foo"/>
<script> var id = document.getElementById('id').value;</script>

編集:loadメインページの完全なコールバックにスクリプトを配置することもできます:

aircraft.load("./file.php?icao="+str, function(){
   /* new html now exists, run code here*/
 });
于 2013-01-19T21:50:11.613 に答える