5

特定の子要素が欠落している要素を返すためにjqueryセレクターを形成するのに助けが必要です。

次のHTMLフラグメントがあるとします。

    <div id="rack1" class="rack">
    <span id="rackunit1" class="rackspace">
        <span id="component1">BoxA</span>
        <span id="label1">Space A</span>
    </span>
    <span id="rackunit2" class="rackspace">
        <span id="label2">Space B</span>
    </span>
    <span id="rackunit3" class="rackspace">
        <span id="component2">BoxA</span>
        <span id="label3">Space C</span>
    </span>
</div>
<div id="rack2" class="rack">
    <span id="rackunit4" class="rackspace">
        <span id="component3">BoxC</span>
        <span id="label4">Space D</span>
    </span>
    <span id="rackunit5" class="rackspace">
        <span id="label5">Space E</span>
    </span>
    <span id="rackunit6" class="rackspace">
        <span id="component4">BoxD</span>
        <span id="label6">Space F</span>
    </span>
</div>

コンポーネントスパンのないラックユニットスパンを見つけてください。これまでのところ、$( "。rack.rackspace")を使用して、すべてのラックユニットスパンを取得します。コンポーネントスパンがあるものを除外する方法、またはコンポーネントスパンがないものだけを選択する方法がわかりません。

4

2 に答える 2

8

私は以下がうまくいくはずだと思います:

$(".rack .rackspace:not(:has(span[id^=component]))"). ...

デモ:http: //jsfiddle.net/WbCzj/

于 2013-01-23T15:05:23.747 に答える
3

あなたが使用することができます.filter()

$('.rack .rackspace').filter(function() {
    return $(this).find('span[id^="component"]').length === 0;
});
于 2013-01-23T15:06:07.340 に答える