将DOM元素与jQuery进行比较

时间:2009-08-05 05:01:36

标签: jquery

我正在使用jQuery each迭代器:

$('p').each(function(){ ... });

我想在以下时间创建一个计算结果为true的表达式:

  • $(this)是最后一个p元素
  • 范围为$(this).parent()
  • $(this)必须是$(this).parent()
  • 的直接子女
  • $(this)不一定是$(this).parent()
  • 的最后直接子女

以下是一些方案,其中所需的p标有星号:

<div>
  <p>div1 p1</p>
  <p>div1 p2</p>
  <p>div1 p3***</p>
</div>

<div>
  <p>div2 p1***</p>
  <span>div2 s1</span>
</div>

<div>
  <p>div3 p1***</p>
  <div>
    div3 d1
    <p>div3 p2</p>
  </div>
</div>

我会尝试解决方案,但失败的尝试太多了。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

你可以使用这样的选择器:

$('body > div').each(function() {
    $(this).children('p:last').each(function() { /* ... */ });
});

会返回您想要的所有<p>代码。

这是一个演示:http://jsbin.com/orage | See Source


您的原始要求没有任何意义。

  

$(this)必须是$(this).parent()

的直接子女
根据{{​​1}}的定义,

$(this)始终是$(this).parent()的直接孩子。