Фильтр JQuery для детского класса после .get () - PullRequest
2 голосов
/ 20 сентября 2010

Проблема : я хочу сделать .get () , но только с элементами без класса .played .(Я создаю произвольный список воспроизведения, проигранные номера помечаются классом .played на их элементе div).

Текущий код :

var randomElements = $("#playlistVideos").get();

Что я пробовал: фильтр () и множество трюков с селектором, ни один из них не удался.Мне очень интересно, как вы решите такую ​​проблему, как эта!

HTML :

<div id="playlistVideos">
<div class="vt ddsitem">
    <a href="javascript:loadAndPlayVideo('wQ5iFQv1KaE')"><img class="pt" id="wQ5iFQv1KaE" src="http://i.ytimg.com/vi/wQ5iFQv1KaE/default.jpg"></a>
    <div>
        <img style="width: 18px; height: 18px; position: relative; left: 100px; bottom: 98px;" class="updown" src="images/updown.gif"><a style="cursor: pointer;" href="javascript:deleteVideo('wQ5iFQv1KaE')"><img style="width: 18px; height: 18px; position: relative; left: 150px; bottom: 98px; cursor: pointer;" class="bin" src="images/bin.gif"></a>
    </div>
</div>
<div class="vt ddsitem">
    <a href="javascript:loadAndPlayVideo('Ya3_wQpzDIU')"><img class="pt" id="Ya3_wQpzDIU" src="http://i.ytimg.com/vi/Ya3_wQpzDIU/default.jpg"></a>
    <div>
        <img style="width: 18px; height: 18px; position: relative; left: 100px; bottom: 98px;" class="updown" src="images/updown.gif"><a style="cursor: pointer;" href="javascript:deleteVideo('Ya3_wQpzDIU')"><img style="width: 18px; height: 18px; position: relative; left: 150px; bottom: 98px; cursor: pointer;" class="bin" src="images/bin.gif"></a>
    </div>
</div>
<div class="vt ddsitem played">
    <a href="javascript:loadAndPlayVideo('Dq0hrmT7JiQ')"><img class="pt" id="Dq0hrmT7JiQ" src="http://i.ytimg.com/vi/Dq0hrmT7JiQ/default.jpg"></a>
    <div>
        <img style="width: 18px; height: 18px; position: relative; left: 100px; bottom: 98px;" class="updown" src="images/updown.gif"><a style="cursor: pointer;" href="javascript:deleteVideo('Dq0hrmT7JiQ')"><img style="width: 18px; height: 18px; position: relative; left: 150px; bottom: 98px; cursor: pointer;" class="bin" src="images/bin.gif"></a>
    </div>
</div>
<div class="vt ddsitem">
    <a href="javascript:loadAndPlayVideo('WklNzfvit9E')"><img class="pt" id="WklNzfvit9E" src="http://i.ytimg.com/vi/WklNzfvit9E/default.jpg"></a>
    <div>
        <img style="width: 18px; height: 18px; position: relative; left: 100px; bottom: 98px;" class="updown" src="images/updown.gif"><a style="cursor: pointer;" href="javascript:deleteVideo('WklNzfvit9E')"><img style="width: 18px; height: 18px; position: relative; left: 150px; bottom: 98px; cursor: pointer;" class="bin" src="images/bin.gif"></a>
    </div>
</div>

Ответы [ 3 ]

2 голосов
/ 20 сентября 2010

Как уже упоминалось, вы можете использовать селектор : not () . Вы также можете использовать метод .not () , который работает аналогично .filter () за исключением того, что он сужается до элементов, сопоставить селектор.

// Using :not()
var randomElements = $('#playlistVideos .vt:not(.played)').get();

// Using .not()
var randomElements = $('#playlistVideos .vt').not('.played').get();

Вот пример с jQuery.com для .not () : http://jsfiddle.net/JVNVL/.

1 голос
/ 20 сентября 2010

Попробуйте использовать селектор : не :

$('#playlistVideos .vt:not(.played)')
1 голос
/ 20 сентября 2010
  $("#playlistVideos .vt:not(.played)").get()

должно хватить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...