jQuery $ .removeAttr(“selected”)更改选定的选项

时间:2011-11-22 12:19:54

标签: javascript jquery

请查看示例:http://jsfiddle.net/HHDpK/1/

如您所见,两个选择器之间的区别仅在于

$("#chooser-1 .y").removeAttr("selected");

但结果他们的状态不同(特别是在Chrome中)。 我错过了什么,或者它是一个错误?

2 个答案:

答案 0 :(得分:6)

看起来像带有属性的jQuery的内部错误。

请注意,在旧版本中,在1.6版本中引入.prop()之前,works as expected

在较新的版本中,只需使用.prop()来处理元素的这些属性:

$("#chooser-1 .x").prop("selected", "selected");
$("#chooser-1 .y").removeProp("selected");

jsFiddle update

不仅如此 - 在先前使用.removeProp("selected")选择的元素上使用prop()将导致原始选择返回而不是没有选择任何内容 - 理想行为。

答案 1 :(得分:3)

我发现上面的答案也失败了,我不得不将道具设置为假,以使所选项目不成为。

$("#chooser-1 .x").prop("selected", false);

removeProp会导致不良后果,例如无法再次重新选择这些选项。

我使用jquery 1.6.2