-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>

如何正确地从 DOM 中执行 Javascript?如果我在 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 和 script 的顺序将意味着 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 回答