js attr和prop

今天写代码的时候遇到了一个问题,是个反选按钮,直接上代码
`

<input type="checkbox" name="items"   value="足球"/>足球
			<input type="checkbox" name="items" value="篮球"/>篮球
			<input type="checkbox" name="items" value="游泳"/>游泳
			<input type="checkbox" name="items" value="唱歌"/>唱歌
			  <input type="button" id="CheckedRev" value="反 选"/> 
   $("#CheckedRev").click(function(){
			var chk = $("input[name=items]");
			for (var i =0;i<chk.length;i++){
				var ischeck = $(chk[i]).attr("checked");
				alert(ischeck); //返回undifine
			$(chk[i]).attr("checked",!ischeck);
		}
	});

代码其实很简单,表面上看没什么错误,第一次结果还是正确的,但是结果如果一直点击这个按钮就会出错,后来才知道ischeck 那返回的并不是true or false
而是undifine 。

后面也参考了他人博客,了解到 固有属性用prop,不然会得不到正确的结果,所谓的固有属性就是指的id name之类,针对于checkbox,checked属性就算是其固有属性。
正确代码:

$("#CheckedRev").click(function(){
		var chk = $("input[name=items]");
		for (var i =0;i<chk.length;i++){
			var ischeck = $(chk[i]).prop("checked");
		$(chk[i]).prop("checked",!ischeck);
	}
});   	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值