jquery设置下拉框selected不起作用

来源:互联网 发布:数据挖掘的研究现状 编辑:程序博客网 时间:2024/06/04 22:12

内容转载来自:http://blog.csdn.net/caixiajia/article/details/52912387

在js中设置下拉框被选中:

最初写法:

//移出selected

$("#selected option").removeAttr("selected");

//将value值为value的设为selected

$("#selected").find("option[value=]+value+"]").attr("selected",true);

来回切换几次后发现selected不起作用了。

上网查询原来是浏览器兼容性的问题:将写法改为以下的写法就可以了

$("#selected").find("option[value=]+value+"]").prop("selected",true);


---------------------------华丽分割线--------------------------------------------------------------------------


内容转载来自:http://www.jb51.net/article/41170.htm

原因:

jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值。

大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined。

jq提供新的方法“prop”来获取这些属性,就是来解决这个问题的,以前我们使用attr获取checked属性时返回"checked"和"",现在使用prop方法获取属性则统一返回true和false。

那么,什么时候使用attr(),什么时候使用prop()?
1.添加属性名称该属性就会生效应该使用prop();
2.是有true,false两个属性使用prop();
3.其他则使用attr();
项目中jquery升级的时候大家要注意这点!

以下是官方建议attr(),prop()的使用:

Attribute/Property.attr().prop()accesskey√ align√ async√√autofocus√√checked√√class√ contenteditable√ draggable√ href√ id√ label√ location ( i.e. window.location )√√multiple√√readOnly√√rel√ selected√√src√ tabindex√ title√ type√ width ( if needed over .width() )√ 

阅读全文
0 0
原创粉丝点击