如何从子()中访问子元素?

时间:2010-06-14 03:13:17

标签: jquery

我想获得一个元素的直接子元素,然后在特定索引处获取子类。类似的东西:

var index = 25;
var children = $("#myListElement").children();
if (index < children.length) {
    if (children[index].hasClass("testClass")) {
        alert("hi!");
    }
}

我认为.children()的语法没问题,但是如何以jquery样式从中获取索引元素呢?

由于

3 个答案:

答案 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"))