为什么attr(attributeName,value)在DOM属性NamedNodeMap中没有创建新的Attr对象?

时间:2010-12-11 19:32:53

标签: jquery attributes attr

我可以通过这样做来改变HTMLOptionElement的value属性:

sizeOptionToBeSelected.attr('value', '555');

它从同一个HTMLOptionElement对象更改了NamedNodeMap属性属性中的HTMLOptionElement的value属性和DOM Attr对象中的值。

但是,我无法创建新的Attr“已选中”或使用以下代码更改HTMLOptionElement的selected属性

sizeOptionToBeSelected.attr('selected', 'true');

为什么你认为这是?我该怎么做?

来自jquery文档:

  

我们可以添加属性相同   办法:       $('#greatphoto')。attr('title','凯利克拉克摄影');

补充说明:
- 代码在$(document).ready中运行(函数,因此加载没有问题 - 我使用最新的Google Chrome 8.0.552.215测试版。

亲切的问候,
暴君

1 个答案:

答案 0 :(得分:0)

jQuery,有点令人困惑,倾向于将属性和属性视为同一件事。因此$(elem).attr('selected', true)实际上将elem的{​​{1}}属性设置为true,而不是其属性。

需要设置selected 属性的原因很少。设置selected(和selected属性就足够了。

另外,请记住defaultSelected 属性对应于默认状态,而不是当前状态。