jQuery 多个属性选择器

jQuery multiple attribute selectors

我有这个字符串

$html = "`<li class="A" test_id=".0.1.1">
...
<li class="A" test_id=".0.2.2">`"

我想用 jQuery 得到 class A 的内容 test_id=".0.1.$111"

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

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

有谁知道哪里出了问题吗?

谢谢

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

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

请注意,向您的 HTML 添加非标准属性是无效的,您应该在它们前面加上 data-:

$html = '<li class="A" data-test-id=".0.1.1"><li class="A" data-test-id=".0.2.2">';
var $li = $(html).find(".A[data-test-id='.0.1.1']");

您也可以使用 filter():

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

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