如何使用jquery更改单个子元素的类

时间:2015-08-20 10:02:52

标签: jquery addclass

我正在尝试这样做:

$(".expand")[0].children[0].addClass("test");

它不起作用。

这个

$(".expand").get(0).children[0];

返回:

<i class=​"fa fa-chevron-circle-down">​::before​</i>​

我想改变它的课程。怎么做?

由于

3 个答案:

答案 0 :(得分:1)

根据选择器看起来你试图在第一个元素中使用class expand将第一个子元素添加到第一个子元素。你可以使用:

$(".expand:first > *:first").addClass("test");

答案 1 :(得分:1)

为什么你的尝试不起作用:

  1. 在第一个中,您已将jquery对象转换为dom元素,并且您尝试应用jquery .addClass()方法。所以这会导致错误。
  2. 在第二个中你使用了.get(0),它也为你提供了dom节点而不是jquery对象。这样也会导致错误。
  3. 解决方案:

    $(".expand:eq(0) > *:eq(0)").addClass("newClass");
    

    这一行会让你获得类expand的第一个元素,它会找到第一个子元素,然后它会应用一个新类。

    虽然你也可以用普通的js做到这一点:

    var parent = document.getElementsByClassName('expand')[0];
        parent.children[0].className = "newClass";
    

答案 2 :(得分:0)

查看您的问题,您正在尝试将类添加到类expand的第一个元素中。为什么不使用:用于此目的的第一个子选择器 $(&#34; .expand&#34; tag:first-child)