【问题标题】:jquery .children() of .get()jquery .children() of .get()
【发布时间】:2011-07-26 04:09:15
【问题描述】:

例子:

<ul>
  <li>
    <a></a>
  </li>
  <li>
    <a></a>
  </li>
</ul>

我可以使用$('ul').children('li').get(0); 来获取列表项。如何使用.children('a') 遍历树?

我尝试了$('ul').children('li').get(0).children('a'); 之类的方法,但不起作用。


供将来参考:

  1. 除了向下遍历之外,我将对li 做其他事情 到a,这就是我尝试使用.children()的原因。
  2. 索引将是动态的,并不总是为 0。

这就是为什么 .eq() 是首选答案的原因。现在我可以这样做:

_load = function(index) {
  image_get = thumbs.children('li').eq(index);

  [...]

  $(function() {
    var img = $(new Image());
    img
      .load(function() {
        [...]
      }
      .attr('src', image_get.children('a').attr('href'));
  });
}

_load(0);

^^^ 在制品。代码未完成。

【问题讨论】:

    标签: javascript jquery get children traversal


    【解决方案1】:

    .get() 返回一个 DOM 元素。您可以将其包装回 jQuery 对象中,例如:

    $($('ul').children('li').get(0)).children('a');
    

    但是我认为你真正想要的是.eq()而不是.get()

    $('ul').children('li').eq(0).children('a');
    

    编辑

    正如 Reid 在下面的评论中指出的那样,

    $('ul').children('li').eq(0).children('a');

    在语义上等价于更简洁的:

    $('ul &gt; li:first-child &gt; a');

    使用单个选择器与上述相同。

    【讨论】:

    • 我什至会去$('ul &gt; li:first-child &gt; a')模仿上面的sn-p。
    • @Reid 确实那个选择器做同样的事情 :) 但我认为向 gavsiu 解释 .get().eq() 之间的区别很重要。据我们所知,他可能也想在未来(或现在)做类似.eq(3) 的事情。
    • 这正是我正在寻找的。他们真的应该在 .index() 和 .eq() 之间建立一个链接。
    • @gavsiu 同意。在我意识到有.eq() 之前,我曾经使用.get() 并将其包装在一个jQuery 对象中,就像我的第一个示例一样大约6 个月。无论如何,我很高兴能帮上忙:)
    【解决方案2】:

    为什么不把它全部放在选择器中,让它为你做所有的工作:

    $('ul li:first a')
    

    这将为您的示例 HTML 中的第一个 &lt;a&gt; 标记获取一个 jQuery 对象。

    选择器逻辑是这样工作的:查找所有 ul 标签,找到每个标签中的第一个 li 标签,然后获取每个第一个 li 标签中的所有 a 标签。结果是一个 jQuery 选择,然后您可以对其应用各种操作。

    在这里演示:http://jsfiddle.net/jfriend00/5qZP5/

    【讨论】:

      【解决方案3】:

      你可以这样做

      $('ul li a:first');

      http://jsfiddle.net/jasongennaro/yCAT6/

      $('ul li a'); 返回该列表中的所有 as。

      :first 只过滤第一个。

      【讨论】:

        猜你喜欢
        • 2019-08-07
        • 2017-11-29
        • 2013-01-15
        • 2015-07-08
        • 1970-01-01
        • 1970-01-01
        • 2023-02-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多