我想迭代 jQuery 的所有子级.children()
返回值,像这样:
var childs = $element.children();
for (var i = 1; i < childs.length - 1; i++)
childs__.foo();
我必须在第 3 行写什么而不是__
,访问第 i 个孩子?
我想要这个是因为我想访问循环中的第 (i-1) 个和第 (i+1) 个子级,如下所示:
var childs = $element.children();
for (var i = 1; i < childs.length - 1; i++)
{
childs<<i>>.css('height', childs<<i - 1>>.height());
childs<<i>>.css('width', childs<<i + 1>>.width());
}
所以我假设each()
功能将无法工作。
childs
is a JavaScript 数组 http://www.w3schools.com/js/js_obj_array.asp。因此,您可以通过以下方式访问数组中的对象childs[indexOfElement]
。在你的情况下childs[i]
.
var childs = $element.children();
for (var i = 1; i < childs.length - 1; i++)
childs[i].foo();
and
var childs = $element.children();
for (var i = 1; i < childs.length - 1; i++)
{
childs[i].css('height', childs[i-1].height());
childs[i].css('width', childs[i+1].width());
}
BUT: 你的代码有错误。子集合中的元素不是 jQuery 对象。它只是一个 DOM 元素。所以你必须把它们包起来$(...)
使用 jQuery 函数。所以你的代码将变成:
var childs = $element.children();
for (var i = 1; i < childs.length - 1; i++)
{
var thisElement = $(childs[i]);
var next = $(childs[i+1]);
var prev = $(childs[i-1]);
thisElement.css('height', prev.height());
thisElement.css('width', next.width());
}
附言。应该命名为children
. :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)