JQuery Sub Selector问题

时间:2009-08-11 17:15:58

标签: jquery

我的HTML

<div id="x">
  <div id="x1">
    some text
    <div>other text</div>
  </div>
  <div id="x2">just text</div>
<div>

我的电话

我有这个元素,可以是任何jquery选择器,1个或多个元素:

var x = $("#x");

现在我需要(这是一个会发现内部元素,如标签的插件),只能通过第一个DIV元素导航而不是它的子项目。我正在努力......

$.each($($("div"), x), function() {
  alert($(this).html());
});

所示: 一些其他课文 2.其他文字 3.只是文字

$.each($($("div"), x).siblings(), function() {
  alert($(this).html());
});

所示: 只是文字 2.一些其他文本文本

这是最接近的,但我需要正确的顺序。有什么建议吗?感谢

PS。因为它是一个插件我不能这样做。

$("#x", "div....")

我需要这样做

#(newselector, x)

3 个答案:

答案 0 :(得分:10)

如果您不能使用$("#x > div"),因为它应该适用于您想到的所有选择器,然后假设您将该特定选择器定义为var x:

var x = $('#x');

// this will select only the direct div children of x whatever the x is
x.children('div');

答案 1 :(得分:1)

使用:

$("#x > div")

作为您的选择器 - 它只会选择ID为div的{​​{1}}的直接子项。

答案 2 :(得分:1)

此方法将为您提供div的所有内部文本:

x.children('div').each(function() {
  alert($(this).text());
});

如果您不希望 all 组合多个子div的文本,则只能访问每个子文本的直接文本节点:

x.children('div').each(function() {
  alert(this.childNodes[0].nodeValue);
});

注意:假设x是由var x = $('#x')定义的Jquery元素。