Jquery中中attr与与prop的区别详解的区别详解
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题
就出现了。下面这篇文章主要给大家介绍了Jquery中attr与prop区别的相关资料,需要的朋友可以参考借鉴,下
面来一起看看吧。
实践过程实践过程
在前一段时间,同事做了一个页面,效果是这样的
页面
当点击左上方那个checkBox时,要将下面的checkBox全部选中,我们的代码是这样的
$("input[name='checkbox']").attr("checked",true);
然并卵,一点效果都没有,后来换成这样,好了
$(function(){
$("#all").click(function(){
if($("#all").prop("checked")){
$("input[name='checkbox']").prop("checked",true);
}else{
$("input[name='checkbox']").prop("checked",false);
}
});
});
于是上官方的文档查了下attr和prop的区别,发现根本看不懂,如下图
于是,我们做了个实验
c1:<input id="c1" name="checkbox" type="checkbox" checked="checked" /></br>
c2:<input id="c2" name="checkbox" type="checkbox" checked=true/></br>
c3:<input id="c3" name="checkbox" type="checkbox" checked=""/></br>
c4:<input id="c4" name="checkbox" type="checkbox" checked/></br>
c5:<input id="c5" name="checkbox" type="checkbox" /></br>
c6:<input id="c6" name="checkbox" type="checkbox" checked=false/></br>
var a1=$("#c1").attr("checked");
var a2=$("#c2").attr("checked");
var a3=$("#c3").attr("checked");
var a4=$("#c4").attr("checked");
var a5=$("#c5").attr("checked");
var a6=$("#c6").attr("checked");
var p1=$("#c1").prop("checked");
var p2=$("#c2").prop("checked");
var p3=$("#c3").prop("checked");
var p4=$("#c4").prop("checked");
var p5=$("#c5").prop("checked");
var p6=$("#c6").prop("checked");
console.log("a1:"+a1);
console.log("a2:"+a2);
console.log("a3:"+a3);
console.log("a4:"+a4);
console.log("a5:"+a5);
console.log("a6:"+a6);
console.log("p1:"+p1);
console.log("p2:"+p2);
console.log("p3:"+p3);
console.log("p4:"+p4);
console.log("p5:"+p5);
console.log("p6:"+p6);
结果是这样的(chrome)
效果
发现attr的返回值要么是checked要么是undefined,prop的返回值只有true和false。
评论0
最新资源