0

如何使用相同的代码找到这两个示例。

<div>
  <div>
    <span class='example-1'></span>
  </div>
  <ul class='find-me'> <!-- find this for example 1 -->

    <li>
      <span></span>
      <ul class='find-me'></ul>
    </li>

    <!-- Any number of li tags here -->

    <li>
      <span class='example-2'></span>
      <ul class='find-me'></ul>  <!-- find this for example 2 -->
    </li>

    <!-- Any number of li tags here -->

  </ul>
</div>

鉴于我有用于 example-1 和 example-2 的 jQuery 对象,我如何为这两个示例编写相同的选择器?可能吗?

我不能只做 selector.parent().find(".find-me") 因为这不适用于第一个示例。我不能做 selector.parent().parent().find(".find-me:first") 因为这会在第二个例子中选择错误的 find-me。

我需要以某种方式说去祖父母那里,然后去你开始的地方,找到下一个找我的课程。

编辑:到目前为止的答案似乎都是误解。必须只有一个选择器适用于两个示例,并且选择器必须相对于表示示例跨度的 jQuery 对象。

4

4 回答 4

2

这是我能想到的最好的:

var $example1 = $(".example-1");
var $example2 = $(".example-2");

$example1.add($example1.parents()).siblings('.find-me').css("color", "red");
$example2.add($example2.parents()).siblings('.find-me').css("color", "blue");​

演示:http: //jsfiddle.net/HNfpM/3/

于 2012-10-04T07:44:23.910 回答
0
$('div > ul.find-me'); <!-- find this for example 1 -->



$('div > ul > li > ul.find-me'); <!-- find this for example 2 -->
于 2012-10-04T07:46:01.527 回答
0

$('.find-me')[0]第一个例子 $('.find-me')[2]第二个例子

于 2012-10-04T07:43:10.853 回答
0

怎么样,$("div span, li span")或者你可以使用 css3 选择器:[att^=val] http://www.w3.org/TR/css3-selectors/ 我实际上会使用 css3 选择器。我在评论中添加了一个工作演示

于 2012-10-04T07:44:10.703 回答