为什么attr()给了我一个奇怪的结果
How come attr() gives me a strange result?
所以我有:
<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="selected"!!??
为什么它没有变为selected="N"
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()
原因是对于它有效的元素(例如<option>
元素),selected
是布尔属性,布尔属性的唯一有效值是属性本身的名称。jQuery的attr()
方法试图巧妙地"更正"selected
属性的值,但失败了。
很明显,jQuery不能正确处理无效属性,这在某种程度上是可以理解的。您可以选择使用元素本身的getAttribute()
方法(在所有主要浏览器中都可以使用),或者更好地使用前缀为data-
的属性,该属性根据HTML5规范有效,受浏览器和jQuery支持。
相关文章:
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 使用NextToken使用javascript aws-sdk解析下一个结果
- Angular.forEach 只返回一个结果
- 谷歌地图商店定位器只返回一个结果
- .each() 函数只输出数组中的最后一个结果
- 如何通过PHP或JavaScript将整个DIV数据发送到下一个结果页面
- 将一个结果集除以另一个结果集,然后显示答案
- foreach 只产生一个结果
- 查找主干集合上的位置仅返回一个结果
- 插入数据库时如何从数据库中检索最后一个结果
- 在 JavaScript 中添加表值会在 NaN 的表单元格中给我一个结果
- 如何将一个结果列表合并到一个包含汇总的压缩对象中
- java脚本regex.match只查找一个结果
- 输出一个结果数组,其中包含给定数组的唯一元素的分组计数
- 从XML文件中隔离一个结果
- 骨干收集发现我只想要一个结果
- 我需要用AJAX Post声明一个结果类型吗
- 在另一个结果中的单选按钮
- 我试图从一个函数内的函数返回一个结果
- 在Javascript页面中搜索-一个结果错误