jQuery addClass of child to parent

时间:2013-03-19 22:39:46

标签: javascript jquery html css

我看起来像http://jsfiddle.net/ShoeMaker/6EEjs/1/

<head><style>
    span.mw-uctop {
        font-weight: bold;
    }
    li.mw-uctop {
        font-size: 8px;
        text-decoration: italic;
    }
</style><script>
    $("li").contents("span.mw-uctop").addClass("mw-uctop");
</script></head><body>
    <ul>
        <li class="">Text blurb 1 <span class="mw-uctop">(top)</span> ‎</li>
        <li class="">Text blurb 2‎</li>
        <li class="">Text blurb 3 <span class="mw-uctop">(top)</span> ‎</li>
        <li class="">Text blurb 4</li>
        <li class="">Text blurb 5</li>
        <li class="">Text blurb 6</li>
        <li class="">Text blurb 7 <span class="mw-uctop">(top)</span> ‎</li>
        <li class="">Text blurb 8 <span class="mw-uctop">(top)</span> ‎</li>
    </ul>
</body>

我想要的最终结果是我想将“mw-uctop”类添加到所有具有“mw-uctop”类的子元素的“li”元素中。我该怎么做?

6 个答案:

答案 0 :(得分:2)

你可以这样做:

$('li > .mw-uctop').parent().addClass('mw-uctop');

答案 1 :(得分:2)

如果“孩子”是指“后代”,那么:

 $("li:has(.mw-uctop)").addClass('mw-uctop');

如果你的确意味着孩子,请尝试:

 $("li:has(> .mw-uctop)").addClass('mw-uctop');

答案 2 :(得分:1)

你可以试试这个:

$('.mw-uctop').closest('li').addClass('mw-uctop');

答案 3 :(得分:1)

试试这个:

$('li').has('span.mw-uctop').addClass('mw-uctop');

答案 4 :(得分:1)

尝试has()

$("li").has("span.mw-uctop").addClass("mw-uctop");
  

将匹配元素集减少到具有后代的元素集   与选择器或DOM元素匹配。

答案 5 :(得分:1)

这是一种更纯粹的面向javascript的方法:

var query = document.querySelectorAll('li > .mw-uctop');
//there are other workarounds for query selector for older browsers (ie6/7)
for(i=0;i<=query.length;i++){
query[i].parentNode.className+= 'mw-uctop';
// For Testing: document.write(query[i].parentNode.className+"<br>");
}

编辑:哎呀一秒钟 编辑:修复