如何使用jQuery选择加载的Ajax内容中的所有链接?
我通过Ajax加载内容,然后使用类似$('.my_content_class')的元素,在那里加载数据,类似于$('.my_content_class').load(url),但是我如何匹配我加载到的新内容中的所有a元素。my_content_类?我试过了,但根本没用如何使用jQuery选择加载的Ajax内容中的所有链接?,jquery,Jquery,我通过Ajax加载内容,然后使用类似$('.my_content_class')的元素,在那里加载数据,类似于$('.my_content_class').load(url),但是我如何匹配我加载到的新内容中的所有a元素。my_content_类?我试过了,但根本没用 $('.my_content_class a').each(function() { doSomething($(this)); }); 为此,必须使用jQuery函数。它是在jQuery1.3中添加的。如果需要,您
$('.my_content_class a').each(function()
{
doSomething($(this));
});
为此,必须使用jQuery函数。它是在jQuery1.3中添加的。如果需要,您实际上可以直接从ajax内容执行此操作,而无需将其加载到另一个容器中
$('a', content_returned_from_ajax).each( function() {
//dostuff
});
$('.my_content_class a')
就是这样做的。您可能遇到的是在加载内容之前运行该函数。AJAX是异步工作的,因此在继续下一行代码之前,在加载内容之前,脚本不会结束。您应该将代码放在load
方法回调中,以便在AJAX请求完成其工作后执行
var url = 'http://example.com/test.html';
var data = {var1: foo, var2: bar};
$('.my_content_class').load(url, data, function () {
// this will be executed after the content was successfully loaded
});
从我在docs中看到的情况来看,一旦AJAX完成了它的工作,回调就会被调用,我不确定这是否是在实际内容加载到DOM树之后。您需要自己解决这个问题,如果之前已经解决了,您必须在回调函数中创建一些小延迟,以便在DOM更新后启动<代码>设置超时可能很方便,但首先我会确保您需要该部分。您可以使用函数的回调参数准确地知道加载何时完成,然后您可以选择您的元素:
$('.my_content_class').load(url, function () {
var anchors = $('a', this); // all loaded anchor elements
});