0

HTML:

<div class="scrollBlock" tabIndex="4">
        <ul id="dropdown-reg-phone-type">
            <li>
                <div class="header tzSelected">Home</div>
                <div class="optkey">0</div>
            </li>
            <li>
                <div class="header">Work</div>
                <div class="optkey">1</div>
            </li>
            <li>
                <div class="header">Cell</div>
                <div class="optkey">2</div>
            </li>
        </ul>
    </div>

jQuery:

var $listItems = $('li');


var $selected = $listItems.filter('div.header.tzSelected'),
console.dir($selected);

if (!$selected.length) {
    console.log("selected doesn't exist");
}

これは、.tzSelectedクラスを持つdivがある場合でも、「selecteddoesnotexist」を返します。フィルタが正しく設定されていないと思いますが、理由がわかりません。$listItems正しい; 次に、そこからとクラスdivの両方を持つを見つける必要があります。headertzSelected

console.dir行はこれを示しています: ここに画像の説明を入力してください

4

2 に答える 2

1

.filter()li内部の要素ではなく、内部の要素を直接操作し$listItemsます。それらの子孫を選択しようとしている場合は、.find()代わりに次を使用する必要があります。

var $selected = $listItems.find('div.header.tzSelected')
于 2013-01-03T17:15:25.427 に答える
0

特定のケースでは、セレクター自体を使用して完全に実行できるはずです。

var $selected = $('li div.header.tzSelected');
于 2013-01-03T17:19:47.657 に答える