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>
我有这个字符串
$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>