jquery设置下拉框selected不起作⽤
在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);
---------------------------华丽分割线--------------------------------------------------------------------------
原因:
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√√
jquery是什么有什么作用
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() )√

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。