如何使用jQuery选择加载的Ajax内容中的所有链接?

如何使用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中添加的。如果需要,您

我通过Ajax加载内容,然后使用类似$('.my_content_class')的元素,在那里加载数据,类似于$('.my_content_class').load(url),但是我如何匹配我加载到的新内容中的所有a元素。my_content_类?我试过了,但根本没用

$('.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 
});