2012-02-09 69 views
4

选择我有这样的HTML,jQuery的 - 如何通过属性

<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返回我的所有属性在具有disabled_onclick属性设置为true我的HTML。在这种情况下,我应该得到3个元素,两个链接标签和一个输入标签。

+0

可能重复:如何查询与自定义命名空间的属性](http://stackoverflow.com/questions/91518/jquery-attribute-selectors-how-to-query-for-an-attribute-with-a-custom-namespac) – 2012-02-09 11:31:43

+0

你为什么要关闭标记 – 2012-02-09 11:33:18

+0

@ dku.rajkumar:那是一个错字 – bragboy 2012-02-09 11:35:27

回答

9

Here的如何选择所有这些元素:

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

由于true is a valid unquoted attribute value in CSS,你甚至可以omit the quotes

$('[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"]'); 
的[jQuery的属性选择
1
$('input[disabled_onclick="true"]'); 

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

在上面的线,你只查询input nodes,则可以省略input然后将查询到所有节点在整个标记(这可能是一种缓慢的” ISH)。

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

试试这个

$('[disabled_onclick="true"]') 
+0

请注意downvote的原因... – 2012-02-09 11:38:11

+0

+1 ..谢谢你的回答 – bragboy 2012-02-09 12:40:08

+0

你永远是欢迎Booosssss .. :) – 2012-02-14 03:01:28