jQuery多个属性选择器

时间:2015-03-06 15:55:12

标签: jquery jquery-selectors find

我有这个字符串

$html = "`<li class="A" test_id=".0.1.$111">
...
<li class="A" test_id=".0.2.$222">`"

我想用jQuery获得类A的内容,其中test_id =“。0.1。$ 111”

我正在尝试这个,但它不起作用

$(html).find("class[value='A'],test_id[value='.0.1.$111']");

有谁知道出了什么问题?

由于

2 个答案:

答案 0 :(得分:1)

属性选择器的语法不正确,您不需要value=。此外,还有一个按类选择的特定语法:.。试试这个:

$(html).find(".A[test_id='.0.1.$111']");

请注意,向HTML添加非标准属性无效,您应在其前面添加data-

$html = '<li class="A" data-test-id=".0.1.$111"><li class="A" data-test-id=".0.2.$222">';
var $li = $(html).find(".A[data-test-id='.0.1.$111']");

您还可以使用filter()

$(html).find('.A').filter(function() {
    return $(this).data('test-id') == '.0.1.$111';
});

答案 1 :(得分:0)

&#13;
&#13;
$('.A[test_id=".0.1.$111"]').addClass('selected');
&#13;
.selected { color:red }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="A" test_id=".0.1.$111">test</li>
<li class="A" test_id=".0.2.$222">test</li>
</ul>
&#13;
&#13;
&#13;