为什么 attr(attributeName, value) 不在 DOM 属性 NamedNodeMap 中创建新的 Attr 对象?
我可以通过以下方式更改 HTMLOptionElement 的 value 属性:
sizeOptionToBeSelected.attr('value', '555');
它更改 HTMLOptionElement 的 value 属性以及同一 HTMLOptionElement 对象的 NamedNodeMap 属性中 DOM Attr 对象中的值。
但是,我无法使用以下代码创建新的 Attr“selected”或更改 HTMLOptionElement 的 selected 属性:
sizeOptionToBeSelected.attr('selected', 'true');
您认为这是为什么?我该如何做到这一点?
来自 jquery 文档:
我们可以添加相同的属性 方式: $('#greatphoto').attr('标题', '凯莉·克拉克拍摄的照片');
附加说明:
- 代码在 $(document).ready( 函数内部运行,因此加载没有问题。
- 我使用最新的 Google Chrome 8.0.552.215 测试版。
亲切的问候,
暴君
I can change the value attribute of a HTMLOptionElement by doing so:
sizeOptionToBeSelected.attr('value', '555');
It changes the value property of the HTMLOptionElement and the value in the DOM Attr object in the NamedNodeMap attributes property from the same HTMLOptionElement object.
But, I cannot create a new Attr "selected" or change the selected property of the HTMLOptionElement with the following code:
sizeOptionToBeSelected.attr('selected', 'true');
Why do you think this is? How can I do this?
From jquery documentation:
We can add an attribute the same
way:
$('#greatphoto').attr('title', 'Photo by Kelly Clark');
Additional explanations:
- The code runs inside the $(document).ready( function so there is no problem with the loading.
- I use the latest Google Chrome 8.0.552.215 beta.
Kind Regards,
Despot
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有点令人困惑的是,jQuery 倾向于将属性和特性视为同一事物。所以
$(elem).attr('selected', true)
实际上是将elem
的selected
属性设置为 true,而不是其属性。很少有理由需要设置
selected
属性。设置selected
(和defaultSelected
)属性就足够了。另外,请记住,
selected
属性对应于默认状态,而不是当前状态。jQuery, somewhat confusingly, tends to treat attributes and properties as the same thing. So
$(elem).attr('selected', true)
is actually settingelem
'sselected
property to true, not its attribute.There are very few reasons to need to set the
selected
attribute. Setting theselected
(anddefaultSelected
) properties should suffice.Also, bear in mind that the
selected
attribute corresponds to the default state, not the current state.