首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在jquery中获取元素的子数组

如何在jquery中获取元素的子数组
EN

Stack Overflow用户
提问于 2012-02-06 02:20:24
回答 7查看 84K关注 0票数 21

这是我的元素,我想通过循环来排列里面的子元素。

代码语言:javascript
复制
<div id="animDummy1">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>

下面是我想象的代码应该是什么样子的,但是当然,should ()不会返回一个包含孩子的数组

代码语言:javascript
复制
var children=$('#animDummy1').children();
for(var i=0;i<children.length;i++){
    children[i].css('left',i*120+'px');
}

问题--我能得到一个循环中使用的子数组吗?我知道我可以为每个孩子附加一个要执行的函数,但是我可以在其中增加"i“吗?

Thnx。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-02-06 02:23:15

children()返回子对象的jQuery对象,该对象类似于DOM节点数组。您的问题出在循环内部--当您使用[]访问单个对象时,您会得到没有css方法的普通DOM节点。使用.eq(i)$(children[i])

或者直接使用each()方法,该方法允许您执行相同的操作,而不必手动编写for循环。阅读文档以了解如何在回调中获取元素的索引。

票数 34
EN

Stack Overflow用户

发布于 2012-02-06 02:23:07

这才是正确的方法。

代码语言:javascript
复制
var children=$('#animDummy1').children();

children.each(function(idx, val){
   $(this).css('left',idx*120+'px');
});

或者实际上这样更好。

代码语言:javascript
复制
$('#animDummy1').children().each(function(idx, val){
   $(this).css('left',idx*120+'px');
})
票数 13
EN

Stack Overflow用户

发布于 2012-02-06 02:28:33

children()返回一组jQuery对象,children[i(anyNumber)]将返回dom元素。因此,在dom元素上调用css jQuery方法会导致错误。如果要访问给定索引处的任何特定元素,则应使用eq方法。尝尝这个。

代码语言:javascript
复制
var children = $('#animDummy1').children();
for(var i = 0;i < children.length;i++){
    children.eq(i).css('left', (i*120+'px') );
}

.eq()参考:http://api.jquery.com/eq/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9151729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档