我设法使用jQuery .load()
从另一个网页获取表的内容并将其插入当前页面,效果很好。但是,如果我在运行脚本之后使用新加载的数据,则它们将返回未定义状态。
index.htm
<table>
<tr id="newTr"></tr>
</table>
<span id="newSpan"></span>
<script>
$('#newTr').load('page2.htm #oldTr');
var newData = document.getElementById("newTr").getElementsByTagName("td");
document.getElementById("newSpan").innerHTML = newData[0].innerHTML;
</script>
page2.htm
<table>
<tr id="oldTr">
<td>content I want in newSpan</td>
<td>more content</td>
</tr>
</table>
对于script
的最后一行,我收到一个TypeError说newData[0]
未定义。但是,如果我将同一行复制并粘贴到浏览器控制台中,它将正确执行并将td
内容复制到span
。我在做什么错了?
答案 0 :(得分:1)
尝试将与加载的内容一起使用的代码放在完整的回调函数中:
$('#newTr').load('page2.htm #oldTr', function() {
var newData = document.getElementById("newTr").getElementsByTagName("td");
document.getElementById("newSpan").innerHTML = newData[0].innerHTML;
});
或者,因为您已经在使用jQuery:
$('#newTr').load('page2.htm #oldTr', function() {
$('#newSpan').html($('#newTr').find('td').html());
});