jquery选择器<div>的集合上的多个类(包含一个类,而不是另一个类)</div>

时间:2012-05-12 04:24:15

标签: jquery css-selectors

这可能比我尝试过的更容易。我有一组<div>,例如<div id="site-abc" .. "site-def">,每个都有类似的HTML内容。 DIV有多个类,如"ui-tabs-panel class2 ui-tabs-hide"。一个没有ui-tabs-hide。这就是我需要一个选择器,然后从那里我需要在宾果游戏内找到该DIV中的独特文本!

以下步骤的正确jQuery选择器代码是什么:A)使用<div>但不包含class="ui-tabs-panel"找到正确的"ui-tabs-hide"; B)获取该选择器结果并找到('th.target2')并获取.text()

var tabs = $('#editors.not(.ui-tabs-hide'); 
var my_text = tabs.find('th.target2').text();

<div class="grid-editor">
    <div id="editors" class="ui-tabs">
        <div id="site-abc" class="ui-tabs-panel class2 ui-tabs-hide"> 
            //duplicates HTML like "site-ghi" including <th>bingo!</th>
        </div>
        <div id="site-def" class="ui-tabs-panel class2 ui-tabs-hide">
            //duplicates HTML like "site-ghi" including <th>bingo!</th>
        </div>
        <div id="site-ghi" class="ui-tabs-panel class2”>
            <table class=”my-table”>
                <thead>
                    <tr>

                        <th class="target1">abc1</th>
                        <th class="target2">bingo</th>
                    </tr>
                </thead>
        </div>
    </div>
</div>

5 个答案:

答案 0 :(得分:1)

你几乎得到了它。使用:not选择器省略您不需要的选项。

var divs = $('.ui-tabs-panel:not(.ui-tabs-hide)'); 

我不确定这是否与问题有关,但你的选择语句中也有错误。

var tabs = $('#editors.not(.ui-tabs-hide');
                                      //^ No Closing bracket 

答案 1 :(得分:1)

试试这个:

var val = $('div.ui-tabs-panel:not(.ui-tabs-hide)').find('th').filter(".target2").text();
alert(val);

见这里:http://jsfiddle.net/YxUfq/6/

答案 2 :(得分:0)

var my_text = $('#target2', '.ui-tabs-panel:not(.ui-tabs-hide)').text();

FIDDLE

答案 3 :(得分:0)

var divs = $('.ui-tabs-panel:not(.ui-tabs-hide)');

var divs = $('.ui-tabs-panel').not('.ui-tabs-hide');

然后找到target2你可以试试这个:

$('th#target2', divs).text();

根据你的标记&#39; target2&#39;是id而不是class。因此th#target2正确,而不是th.target2

答案 4 :(得分:0)

我认为最酷的方法是:

var text = $(".ui-tabs-panel:not(.ui-tabs-hide) th.target2").text();

希望有所帮助