所以我有:
<span selected="Y" onclick="change();">Click here to test~</span>
<script src="jquery-1.7.2.js"></script>
<script>
function change()
{
$('span[selected=Y]').attr("selected","N");
}
</script>
当我点击范围并使用firebug检查范围的属性时,属性“selected”更改为“selected”而不是“N”。
所以结果是选中=“选中” !! ??
为什么它没有改为selected="N"
答案 0 :(得分:4)
selected
不是span
的有效属性,而是您可以使用data
。
<span data-selected="Y">Click here to test~</span>
的的jQuery 强> 的
$('span[data-selected=Y]').on('click', function() {
$(this).data('selected', 'N');
});
详细了解jQuery .data()
答案 1 :(得分:0)
原因是对于有效的元素(例如<option>
个元素),selected
是布尔属性,布尔属性的唯一有效值是属性本身。 jQuery的attr()
方法正在尝试并且无法聪明并“纠正”selected
属性的值。
显然,jQuery没有正确处理无效属性,这在某种程度上是可以理解的。您可以选择使用元素本身的getAttribute()
方法(适用于所有主流浏览器),或者更好,使用前缀为data-
的属性,该属性根据HTML5规范有效,浏览器和jQuery支持。