使用通过jquery加载获取的内容?

时间:2018-12-27 23:39:58

标签: javascript jquery

我设法使用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。我在做什么错了?

1 个答案:

答案 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());
});