使用jQuery获取DOM中的后代节点

时间:2013-05-08 20:27:23

标签: javascript jquery dom

有人能告诉我这个jQuery的等价物是什么吗?

var shapes=document.getElementsByTagName("shapes")[0];
thisCircle=shapes.getElementsByTagName("circle")[index];

5 个答案:

答案 0 :(得分:4)

有几种方法可以做到这一点。这是我写的方式:

$('shapes').first().find('circle').eq(index)

答案 1 :(得分:3)

您可以直接在CSS选择器中使用标记,并使用像:first这样的修饰符让CSS选择器引擎为您完成大部分工作并创建最少的中间jQuery对象。

.eq(index)从找到的所有项中选择index项,并返回一个jQuery对象。使用像[index]这样的数组语法直接索引它将返回一个DOM对象(不是jQuery对象):

$("shapes:first circle").eq(index)

这里一步一步描述的是:

  1. 找到第一个形状对象。
  2. 查找作为第一个形状对象后代的所有圆形对象,并构造一个包含所有这些圆形对象的jQuery对象。
  3. 调用jQuery对象上的eq()方法创建一个仅包含index圆对象的新jQuery对象(例如,仅包含第3个)。

答案 2 :(得分:1)

$("shapes:eq(0) circle").eq(index);

答案 3 :(得分:1)

$( '形状')。当量(0).find( '圆圈')。当量(指数)

答案 4 :(得分:-1)

I think this should work:

$('[name="shapes"]').first().find('circle').eq(index);