jquery .children()of .get()

gav*_*siu 3 javascript jquery children get traversal

例:

<ul>
  <li>
    <a></a>
  </li>
  <li>
    <a></a>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我可以$('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);
Run Code Online (Sandbox Code Playgroud)

^^^ WIP.代码未完成.

Pau*_*aul 11

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

$($('ul').children('li').get(0)).children('a');
Run Code Online (Sandbox Code Playgroud)

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

$('ul').children('li').eq(0).children('a');
Run Code Online (Sandbox Code Playgroud)

编辑

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

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

在语义上等同于更简洁:

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

使用单个选择器与上面的相同.