jQuery - “每个”范围内的范围?

时间:2011-08-10 03:58:10

标签: jquery each

我有三个td,我试图将每个内的功能限制为只有那个td。我该怎么做呢?使用此代码,它将所有3个图像并在h2之前插入所有图像

jQuery("td.frontpage_news").each(function() {
    jQuery("span.frontpage_news p:first-child").has("a img").insertBefore("h2.contentheading.frontpage_news");      });

3 个答案:

答案 0 :(得分:3)

您可以使用$(this)获取each当前正在处理的元素 - 将该对象与find结合使用可以调整您的通话范围:

jQuery("td.frontpage_news").each(function() {
    var $that = jQuery(this);
    var $thatHeading = $that.find("h2.contentheading.frontpage_news");
    $that.find("span.frontpage_news p:first-child")
         .has("a img").insertBefore( $thatHeading  );
});

这假定内容标题和首页新闻项是td的子项。

答案 1 :(得分:1)

您可以不使用每种方法。 只需使用:

jQuery("td.frontpage_news span.frontpage_news p:first-child").has("a img").insertBefore("h2.contentheading.frontpage_news");   

如果你真的需要使用每个,那么提供this上下文到jquery来搜索

jQuery("td.frontpage_news").each(function() {
    jQuery("span.frontpage_news p:first-child", this).has("a img").insertBefore("h2.contentheading.frontpage_news");      
});

答案 2 :(得分:0)

试试这个:

jQuery("h2.contentheading.frontpage_news").before(jQuery("td.frontpage_news span.frontpage_news p:first-child").has("a img"));