1

次のような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> ‎&lt;/li>
        <li class="">Text blurb 2‎&lt;/li>
        <li class="">Text blurb 3 <span class="mw-uctop">(top)</span> ‎&lt;/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> ‎&lt;/li>
        <li class="">Text blurb 8 <span class="mw-uctop">(top)</span> ‎&lt;/li>
    </ul>
</body>

最終結果として私が探しているのは、「mw-uctop」クラスを持つ子を持つすべての「li」要素にクラス「mw-uctop」を追加したいということです。どうすればいいですか?

4

6 に答える 6

2

あなたはこのようにそれを行うことができます:

$('li > .mw-uctop').parent().addClass('mw-uctop');
于 2013-03-19T22:41:37.123 に答える
2

あなたはこれを試すことができます:

$('.mw-uctop').closest('li').addClass('mw-uctop');
于 2013-03-19T22:42:28.020 に答える
2

「子供」が「子孫」を意味する場合、次のようになります。

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

あなたが本当に子供を意味するなら、試してください:

 $("li:has(> .mw-uctop)").addClass('mw-uctop');
于 2013-03-19T22:44:28.100 に答える
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>");
}

編集:おっと1秒編集:修正

于 2013-03-19T23:41:30.883 に答える
1

Simply try this:

$('li').has('span.mw-uctop').addClass('mw-uctop');
于 2013-03-19T22:43:34.870 に答える
1

has() を試してください:

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

一致した要素のセットを、セレクターまたは DOM 要素に一致する子孫を持つ要素に減らします。

于 2013-03-19T22:43:35.510 に答える