修改通过.load()

时间:2015-04-22 14:39:02

标签: javascript jquery html css dom-traversal

第一次使用jQuery。我正在使用它将外部元素的内容加载到我的页面上。它加载很好,但我发现正常的遍历方法不适用于加载的元素。例如,我所拥有的是:

<div id="area"></div>
<script type="text/javascript">
     $("#area").load("externalPage.html #externalElement > *");
     $("#area").find("ul").first().css("display","none");
</script>

脚本的第二行似乎什么都不做。这是否与操作完成的顺序有关?

我正在将它加载到Blackboard LMS上的自定义HTML模块中,如果脚本过于复杂,有时会表现得很奇怪,所以这很可能是另一个时代。谢谢你帮我解决了!

2 个答案:

答案 0 :(得分:1)

.load()在完成后会收到回调。你可以在那里做你想要的新标记。

$("#area").load('foo.html', function () { 
  /* Now you have access to foo.html's markup */
});

答案 1 :(得分:0)

您需要将回调中的第二行放入.load()

$("#area").load("externalPage.html #externalElement > *", function() {
  $("#area").find("ul").first().css("display","none");
});

$.get()$.fn.load()之类的东西是基于jQuery $.ajax()系统构建的便捷函数。加载内容的过程本质上是异步的。