jQuery - 如何按属性选择

IT技术 javascript jquery html
2021-01-23 12:49:46

我有一个这样的 HTML,

<a id="a_1" href="#" disabled_onclick="true">Link1</a>
<a id="a_2" href="#">Link2</a>
<a id="a_3" href="#" disabled_onclick="true">Link3</a>
<input id="b_1" type="submit" disabled_onclick="true">Button1</input>
<input id="b_2" type="submit">Button2</input>
<input id="b_3" type="submit">Button3</input>

现在我需要编写一个 jQuery,它返回我的 html 中的所有属性,并将 disabled_onclick 属性设置为 true。在这种情况下,我应该得到 3 个元素、两个链接标签和一个输入标签。

3个回答

以下是选择所有这些元素的方法:

$('[disabled_onclick="true"]');

由于true是 CSS 中有效的不带引号的属性值,您甚至可以省略引号

$('[disabled_onclick=true]');

如果您关心有效的 HTML,您应该考虑使用自定义data-*属性。

<input id="b_1" type="submit" disabled_onclick="true">
<!-- …becomes… -->
<input id="b_1" type="submit" data-disabled-onclick="true">

这样它就是有效的 HTML,您仍然可以按如下方式选择它:

$('[data-disabled-onclick="true"]');

试试这个

$('[disabled_onclick="true"]')
$('input[disabled_onclick="true"]');

http://api.jquery.com/attribute-equals-selector/

在上面的行中,您只查询input nodes,您可以省略inputwhich 将查询整个标记中的所有节点(这可能有点慢)。

$('[disabled_onclick="true"]');
我认为它也会返回 <a> 标签。
2021-03-22 12:49:46
这仅选择input标签而不选择a标签
2021-03-26 12:49:46
@jAndy 现在你说什么.. 我认为你不应该接受它.. 我们的目的不是指出你,只是为了纠正。
2021-04-03 12:49:46
@jAndy:我在您编辑答案之前发表了评论,无论如何,我会收回 -1,因为您当前的答案是正确的
2021-04-09 12:49:46
@dku.rajkumar:是的,没错。你猜对了。你赢了。
2021-04-13 12:49:46