当前位置:首页>开发>正文

jquery怎么获取checked属性 jQuery中attr和prop在修改checked属性时的区别

2023-06-25 16:39:54 互联网 未知 开发

 jquery怎么获取checked属性 jQuery中attr和prop在修改checked属性时的区别

jquery怎么获取checked属性

所使用的jquery版本为jquery-1.9.1,浏览器为Chrome 
1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase 
<input type="checkbox" id="selectAll" onclick="checkAll()">全选 
function checkAll() 
{
var checkedOfAll=$("#selectAll").prop("checked")
alert(checkedOfAll)
$("input[name=procheck]").prop("checked", checkedOfAll) 

2.如果使用attr方法获取时,如果当前input中初始化未定义checked属性,则不管当前是否选中,$("#selectAll").attr("checked")都会返回undefined; 
<input type="checkbox" id="selectAll" onclick="checkAll()" >全选 
如果当前input中初始化已定义checked属性,则不管是否选中,$("#selectAll").attr("checked")都会返回checked. 
<input type="checkbox" id="selectAll" onclick="checkAll()" checked>全选 
function checkAll() 
{
var checkedOfAll=$("#selectAll").attr("checked")
alert(checkedOfAll)
$("input[name=procheck]").attr("checked", checkedOfAll) 

总结,如果使用jquery,应使用prop方法来获取和设置checked属性,不应使用attr.

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

使用语句$.attr(checked,true),将复选框的属性改为被选中,在chrome浏览器中第一次点击有效后面就不行了,IE8倒是没有问题
  在做复选框全选按钮的时候,出现了一个问题,使用语句$.attr(checked,true),将复选框的属性改为被选中,在chrome浏览器中第一次点击有效后面就不行了,IE8倒是没有问题。
  百度了很久找到原因是HTML的属性分为attribute和property,暂且将后者称为特性。
  checked属性即分为attribute->checked,和property->true,false。
  对于一个checkbox,若未定义checked="checked",alert($.attr("checked")) 的结果是undefined。若已定义则结果是checked。attribute并不随着checkbox的状态变化而改变。
  使用prop($.attr("checked"))的话输出则分别为false和true。property则随其变化而变化。
  所以在修改checked属性时要使用prop()。prop()在jQuery1.6版本后新增。
  网上关于其他类似属性的图表:

  另外关于在IE9之前版本中,如果property没有在DOM元素被移除之前删除,使用.prop()方法设置DOM元素property(简单类型除外:number、string、boolean)的值会导致内存泄露。为了安全的设置DOM对象的值,避免内存泄露,可以使用.data()方法。 目前尚未遇到,先记在这里。

jquery选择器 checked和:selected的区别


:checked 一般是checkbox和radio的属性, $("input[name=a]:checked") 选择的是一个数组
:selected 一般是下拉框的属性

标签中的checked属性和jq中的checked有什么不同

jquery中的checked:http://www.w3school.com.cn/jquery/selector_input_checked.asp参考网址;标签中的就是是否选中的意思。

最新文章