可能重复:
Javascript after Ajax
我想在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>
答案 0 :(得分: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*/
});