看来,选择实际检查的可检查输入的唯一方法是使用:checked选择器。为什么[checked]没有在JQUERY中作为选择器?
是否有技术原因,这不起作用:
$("INPUT[checked]")
,而它似乎对其他属性的工作吗?
看来,选择实际检查的可检查输入的唯一方法是使用:checked选择器。为什么[checked]没有在JQUERY中作为选择器?
是否有技术原因,这不起作用:
$("INPUT[checked]")
,而它似乎对其他属性的工作吗?
"input[checked]"
将根据原始HTML源代码进行选择。只有那些基于包含checked
属性的HTML标记的INPUT元素才会被选中。
现场演示:http://jsfiddle.net/simevidas/PXudH/
在我的演示,第二个复选框(“B”)将在任何时候都可以选择,无论你如何选择/不选择这两个的复选框。
因为你需要把值的属性。但是它是什么?你用XHTML checked="checked"
写成HTML4/5,只是简单的checked
。 DOM模型应该将其存储为true。
$('input[checked="checked"]'); // Poor
$('input[checked=true]'); // Maybe
但由于潜在的浏览器差异和检查布尔值,所以它很烦琐,所以有一个特定的方法来做到这一点。
$('input:checked'); // Correct
内部实现只检查元素.checked
属性。
从v1.5.1:
filters: {
// ...
checked: function(elem) {
return elem.checked === true;
},
// ...
}
我想技术原因可能是jQuery的选择是区分大小写的。这将适用于所有大写INPUT标签
XHTML要求checked
属性与="checked"
之后,但有些人不写有效的XHTML。使它更简单,只有一个表达式。
写道,甚至没有想到,我的意思是XHTML需要=“检查”,但人们并不总是把它放在 –
是的,但XHTML的有效性是不相关的。无论页面是否为HTML或XHTML文档,每个浏览器都能理解此“”。 –
是的,但是因为它可以用两种方式编写,要检查一个项目是否被选中,您需要两个选择器,一个用于属性,另一个用于属性和等式 –
input [checked]说找一个'可能'存在的属性,甚至可能取消选中它,这取决于html。输入[checked]需要生成的HTML已经具有'checked'属性,我认为你知道。根据生成的<input type="checkbox"/>
的方式,直到用户单击输入时才有可能为真。即使点击后,属性键值对html看起来像是浏览器。
我的猜测是保留它使用的[css selector abiltiies](http://reference.sitepoint.com/css/pseudoclass-checked)。但在选择器中使用属性也应该起作用。 –
为什么它不起作用? http://jsfiddle.net/QCCS3/ – Sotiris