我想获得一个元素的直接子元素,然后在特定索引处获取子类。类似的东西:
var index = 25;
var children = $("#myListElement").children();
if (index < children.length) {
if (children[index].hasClass("testClass")) {
alert("hi!");
}
}
我认为.children()的语法没问题,但是如何以jquery样式从中获取索引元素呢?
由于
答案 0 :(得分:11)
children
方法返回包含纯DOM节点的类数组对象。您需要使用jQuery包装一个包含的元素,或者使用eq(index)
方法检索它,以便能够在其上使用jQuery方法,如hasClass
。
if ($(children[index]).hasClass("testClass"))
由于显而易见的性能原因,jQuery默认不会将它们包装起来。
如果您使用的是Firebug或Chrome / Webkit开发人员工具,则在尝试调用对象上的未定义方法时会出现异常。见example。确保你正在观看控制台输出:)
TypeError: Object #<an HTMLLIElement> has no method 'hasClass'
答案 1 :(得分:2)
我很抱歉,但我发现你的问题有些令人困惑。这是你想要的吗?
var parent = $("#myitem"),
count = parent.children().length,
index = parent.children(".theClass").index();
它获取具有特定类的项的子索引,不需要循环。
但是,如果您需要该类(但已经有索引),请执行以下操作:
var parent = $("#myitem"),
count = parent.children().length,
classN = parent.children()[3].className;
答案 2 :(得分:0)
使用eq()
:
if (children.eq(index).hasClass("testClass"))