使用Ajax加载后使用document.getElementById

时间:2012-07-16 13:27:51

标签: getelementbyid

请帮帮我。

我有一个文件index.php,相关部分(之前加载了Jquery):

<div id="test"></div>
<script type="text/javascript">
$('#test').load("table.php");
</script>

一个文件table.php。如果未给出变量,则显示未过滤的表。当table.php加载时,它还会加载一个select字段,如:

<select name="testfield" id="testfield" onchange="javascript:setactionfilter();">
<option value="1">Test</option>
<option value="2">Test2</option>
</select>

之后,一个脚本重新加载该testdiv中的table.php并带有过滤结果:

<script type="text/javascript">
function setactionfilter(){
$('#test').load("table.php?action=".document.getElementById('testfield').selectedvalue);
}
</script>

问题是我的浏览器告诉我getElementById为null,换句话说,它无法在页面中找到我的选择字段。

知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

.更改为+

在javascript中使用+进行连接,例如string3 = string1 + " " + string2

$('#test').load("table.php?action="+document.getElementById('testfield').value);

答案 1 :(得分:0)

.load函数是异步的,因此执行立即需要数据的操作将失败。而是使用加载函数的回调功能:

$('#test').load('table.php', function() {
    // Do your stuff here!
});

将代码放入回调函数可确保在代码运行时加载table.php并准备就绪。