首页技术input属性checked?input checked属性

input属性checked?input checked属性

编程之家2026-06-01901次浏览

很多朋友对于input属性checked和input checked属性不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

input属性checked?input checked属性

input标签checked= false是什么意思

首先JS中的checked是<input type="checkbox">和<input type="radio">的一种属性,表示该项是不是被选择了。

它是有两种定义方式的分别是:

一、在input标签中定义:

1.<input type="checkbox" checked=true>表示该项被选择。

2.<input type="checkbox">表示该项不被选择。

注意:如果是不被选择就不用写checked属性了。如果你写了,不管checked的值是什么,都是被选择。原因:html是一种宽松的标记语言,会忽略你的checked=false中的false,所以结果还是被选中。

input属性checked?input checked属性

二、在加载的javascript中设置:

1.objs[i].checked=true的意思就是该input元素的checked的值是true,就是该input被选中。

2.objs[i].checked=false的意思就是该input元素的checked的值是false,就是该input不被选中。

你那个既然把所有的input元素都遍历了一遍,然后又都给了true值,也就是全选了。

jQuery中attr和prop在修改checked属性时的区别

没有太大区别。一般情况下具有 true和 false两个属性的属性,如 checked, selected或者 disabled使用prop(),其他的使用 attr()。

以下来自网络,有兴趣可阅读:

input属性checked?input checked属性

jQuery1.6开始新增了一个方法prop()。

从中文意思看,两者分别是获取/设置attributes和properties的方法,那么为什么还要增加prop()方法呢?

BeforejQuery1.6,the.attr()methodsometimestookpropertyvaluesintoaccountwhenretrievingsomeattributes,whichcouldcauseinconsistentbehavior.

因为在jQuery1.6之前,使用attr()有时候会出现不一致的行为。

那么,什么时候使用attr(),什么时候使用prop()?

ToretrieveandchangeDOMpropertiessuchasthechecked,selected,ordisabledstateofformelements,usethe.prop()method.

根据官方的建议:具有true和false两个属性的属性,如checked,selected或者disabled使用prop(),其他的使用attr()

到此,将attr('checked')改成prop('checked')即可修复提的issues了。

^_^

等等,貌似问题还没真正解决,为什么开头例子中jQuery1.8.3和1.9.0使用attr()会有所区别呢?

想知道他们的区别,最好的办法还是看他们的源代码:

1.8.3attr():

attr:function(elem,name,value,pass){

varret,hooks,notxml,

nType=elem.nodeType;

//don'tget/setattributesontext,commentandattributenodes

if(!elem||nType===3||nType===8||nType===2){

return;

}

if(pass&&jQuery.isFunction(jQuery.fn[name])){

returnjQuery(elem)[name](value);

}

//Fallbacktopropwhenattributesarenotsupported

if(typeofelem.getAttribute==="undefined"){

returnjQuery.prop(elem,name,value);

}

notxml=nType!==1||!jQuery.isXMLDoc(elem);

//Allattributesarelowercase

//Grabnecessaryhookifoneisdefined

if(notxml){

name=name.toLowerCase();

hooks=jQuery.attrHooks[name]||(rboolean.test(name)?boolHook:nodeHook);

}

if(value!==undefined){

if(value===null){

jQuery.removeAttr(elem,name);

return;

}elseif(hooks&&"set"inhooks&&notxml&&(ret=hooks.set(elem,value,name))!==undefined){

returnret;

}else{

elem.setAttribute(name,value+"");

returnvalue;

}

}elseif(hooks&&"get"inhooks&&notxml&&(ret=hooks.get(elem,name))!==null){

returnret;

}else{

ret=elem.getAttribute(name);

//Non-existentattributesreturnnull,wenormalizetoundefined

returnret===null?

undefined:

ret;

}

}

1.9.0attr():

attr:function(elem,name,value){

varret,hooks,notxml,

nType=elem.nodeType;

//don'tget/setattributesontext,commentandattributenodes

if(!elem||nType===3||nType===8||nType===2){

return;

}

//Fallbacktopropwhenattributesarenotsupported

if(typeofelem.getAttribute==="undefined"){

returnjQuery.prop(elem,name,value);

}

notxml=nType!==1||!jQuery.isXMLDoc(elem);

//Allattributesarelowercase

//Grabnecessaryhookifoneisdefined

if(notxml){

name=name.toLowerCase();

hooks=jQuery.attrHooks[name]||(rboolean.test(name)?boolHook:nodeHook);

}

if(value!==undefined){

if(value===null){

jQuery.removeAttr(elem,name);

}elseif(hooks&&notxml&&"set"inhooks&&(ret=hooks.set(elem,value,name))!==undefined){

returnret;

}else{

elem.setAttribute(name,value+"");

returnvalue;

}

}elseif(hooks&&notxml&&"get"inhooks&&(ret=hooks.get(elem,name))!==null){

returnret;

}else{

//InIE9+,Flashobjectsdon'thave.getAttribute(#12945)

//Support:IE9+

if(typeofelem.getAttribute!=="undefined"){

ret=elem.getAttribute(name);

}

//Non-existentattributesreturnnull,wenormalizetoundefined

returnret==null?

undefined:

ret;

}

}

1.8.3和1.9.0的prop()是一样的:

prop:function(elem,name,value){

varret,hooks,notxml,

nType=elem.nodeType;

//don'tget/setpropertiesontext,commentandattributenodes

if(!elem||nType===3||nType===8||nType===2){

return;

}

notxml=nType!==1||!jQuery.isXMLDoc(elem);

if(notxml){

//Fixnameandattachhooks

name=jQuery.propFix[name]||name;

hooks=jQuery.propHooks[name];

}

if(value!==undefined){

if(hooks&&"set"inhooks&&(ret=hooks.set(elem,value,name))!==undefined){

returnret;

}else{

return(elem[name]=value);

}

}else{

if(hooks&&"get"inhooks&&(ret=hooks.get(elem,name))!==null){

returnret;

}else{

returnelem[name];

}

}

}

首先,我们看下attr()和prop()的区别:

attr()里面,最关键的两行代码

elem.setAttribute(name,value+"");

ret=elem.getAttribute(name);

很明显的看出来,使用的DOM的APIsetAttribute()和getAttribute()方法操作的属性元素节点。

prop()里面,最关键的两行代码

return(elem[name]=value);

returnelem[name];

可以理解为document.getElementById(el)[name]=value,这是转化成element的一个属性。

对比调试1.9.0和1.8.3的attr()方法,发现两者的区别在于

hooks.get(elem,name))

返回的值不一样,具体的实现:

1.8.3中

boolHook={

get:function(elem,name){

//Alignbooleanattributeswithcorrespondingproperties

//Fallbacktoattributepresencewheresomebooleansarenotsupported

varattrNode,

property=jQuery.prop(elem,name);

returnproperty===true||typeofproperty!=="boolean"&&(attrNode=elem.getAttributeNode(name))&&attrNode.nodeValue!==false?

name.toLowerCase():

undefined;

}

}

1.9.0中

boolHook={

get:function(elem,name){

var

//Use.proptodetermineifthisattributeisunderstoodasboolean

prop=jQuery.prop(elem,name),

//Fetchitaccordingly

attr=typeofprop==="boolean"&&elem.getAttribute(name),

detail=typeofprop==="boolean"?

getSetInput&&getSetAttribute?

attr!=null:

//oldIEfabricatesanemptystringformissingbooleanattributes

//andconflateschecked/selectedintoattroperties

ruseDefault.test(name)?

elem[jQuery.camelCase("default-"+name)]:

!!attr:

//fetchanattributenodeforpropertiesnotrecognizedasboolean

elem.getAttributeNode(name);

returndetail&&detail.value!==false?

name.toLowerCase():

undefined;

}

}

由此可见,1.9.0开始不建议使用attr()来对具有true和false两个属性的属性进行操作了。

那么我们的结论是:

具有true和false两个属性的属性,如checked,selected或者disabled使用prop(),其他的使用attr(),具体见下表:

浅析jquery与checkbox的checked属性的问题

1、页面加载成功后,点击选中或取消选中该checkbox,checkbox属性里的checked属性不会根据该checkbox是否选中而变化

2、checkbox里的onchange或onclick方法里用jquery的attr方法获取checked是看得到的checked属性的值与它是否给钩上没有关系

3、使用document.getElementById("checkbox_id").checked获取的值与是否钩上一至,即与所见即所得

4、使用$("#checkbox_id").attr("checked")获取的值与<input

type="checkbox"></input>里的checked情况一至,不是所见即所得

5、使用$("#checkbox:checked")获取的都是被钩上的checkbox

6、document.getElementById("checkbox_id").checked=true,控件里的checked属性没有显示出来,所做即所见

7、$("#checkbox_id").attr("checked",true),控件里的checked属性显示出来,所做即所见,同时代码也会变化

以上这篇浅析jquery与checkbox的checked属性的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

好了,文章到此结束,希望可以帮助到大家。

pygame ai?用ai做微信小游戏php正则表达式匹配字符串(sql正则表达式提取字符串)