微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么jQuery总是为$.attr(‘open’)返回’open’,而不管属性的实际值是多少?

在jQuery中,为什么这样:

$('<div open="whatever">').attr('open')

总是评价为’开放’而不是’什么’?相比之下,这:

$('<div asdf="whatever">').attr('asdf')

按预期评估“任何”.

是的,我知道open和asdf不是有效的HTML属性;我不是在寻找那些说“只是使用数据打开”等等的答案……我正在寻找上述行为的解释.

解决方法

open实际上是一个 valid attribute for HTML5,意思是布尔值.如果是这种情况,我怀疑如果你有“开放”设置,浏览器会将其评估为真,并返回它是“开放”.

我更好奇地知道为什么它会“开放”而不是“真实”.可能是由于各种浏览器的实现不完整.他们可能以这种或那种方式将该属性放在一边以备后用.

[附录:根据评论,这似乎是HTML对待布尔的方式]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐