Javascript 使用通过jquery加载获取的内容?
我已经设法使用jQueryJavascript 使用通过jquery加载获取的内容?,javascript,jquery,Javascript,Jquery,我已经设法使用jQuery.load()从另一个网页获取表的内容,并将其插入到当前网页中,效果很好。但是,如果在运行脚本之后使用新加载的数据,它们将返回为未定义 index.htm <table> <tr id="newTr"></tr> </table> <span id="newSpan"></span> <script> $('#newTr').load('page2.htm #oldTr'
.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>
$('newTr').load('page2.htm#oldTr');
var newData=document.getElementById(“newTr”).getElementsByTagName(“td”);
document.getElementById(“newSpan”).innerHTML=newData[0]。innerHTML;
page2.htm
<table>
<tr id="oldTr">
<td>content I want in newSpan</td>
<td>more content</td>
</tr>
</table>
我想在newSpan中看到的内容
更多内容
对于
脚本的最后一行
,我得到一个类型错误,表示newData[0]
未定义。但是,如果我将同一行复制并粘贴到浏览器控制台中,它将正确执行,td
内容将复制到span
。我做错了什么?尝试将与加载内容一起工作的代码放入完整的回调函数中:
$('#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());
});
内容未定义?您可以发布您得到的具体错误吗?jQuery的
load()
函数是异步的,这意味着它将发送该请求以获取信息,并继续处理其余的代码。然后,在加载内容之前,下一行立即运行。您可以在load()
中使用另一个参数来声明运行下一行的回调函数(即complete)。这样,它将等待内容加载后运行其余的适用代码。您可以为load提供的最后一个参数是success方法,它将在load将ajax请求中的内容插入页面后执行。