Как использовать jQuery для выбора элементов div, в которых нет тегов tr с определенным идентификатором - PullRequest
2 голосов
/ 13 января 2012

Вот пример кода, объясняющего, что я пытаюсь сделать:

<div id="list_subpanel_contacts">
    <table>
        <tbody>
            <tr></tr>
            <tr class="oddListRowS1"></tr>
        </tbody>
    </table>
</div>
<div id="list_subpanel_accounts_usi_orders">
    <table>
        <tbody>
            <tr></tr>
        </tbody>
    </table>
</div>
<div id="list_subpanel_orders">
    <table>
        <tbody>
            <tr></tr>
            <tr class="oddListRowS1"></tr>
            <tr class="evenListRowS1"></tr>
        </tbody>
    </table>
</div>

Мне нужно найти любой div с идентификатором , начинающимся с"list_subpanel_" и не не имеет <tr> тегов, которые имеют класс "oddListRowS1" или "evenListRowS1".

Затем мне нужно получить все, что находится после второго подчеркивания в идентификаторе div ипередать это в функцию.

Итак, в примере кода jQuery найдет только второй div и передаст функции "accounts_usi_orders" в функцию.

Это довольно далеко за пределами моего текущего jQueryВыбор знаний, поэтому я буду признателен за любую помощь, ребята.Спасибо!

Ответы [ 2 ]

1 голос
/ 13 января 2012

Вы можете использовать filter () с find () :

var divs = $("div[id^=list_subpanel_]").filter(function() {
    return !$(this).find("tr.oddListRowS1, tr.evenListRowS1").length;
});

Чтобы извлечь фрагмент id, вы можете использовать substr() :

divs.each(function() {
    yourFunction(this.id.substr(14));
});
0 голосов
/ 13 января 2012
var elements = new Array();

var i = 0;

    $("div[id^='list_subpanel_']").each(function(){
        if($(this).find('tr.oddListRowS1,tr.evenListRowS1').attr("class") == undefined){
           elements[i] = $(this);
           i++;
        }
    });

    for(i = 0; i < elements.length; i++){
        $(elements[i]).attr("id","whatever");  //And then do what you want to do with it
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...