重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
attr方法可以用来获取JQuery对象的属性值,例如获取对象jq的name属性值:var v= jq.attr("name");
创新互联公司是一家专注于成都网站制作、成都做网站与策划设计,顺平网站建设哪家好?创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:顺平等地区。顺平做网站价格咨询:18982081108
attr方法也可以用来设置属性值,例如:jq.attr("name", "test");作用是把对象jq对应的html元素的name属性值设置为test。
data方法用来获取JQuery对象上缓存的数据或者在JQuery对象上缓存数据,缓存的数据都是以key-value(键值对)形式保存。例如:
var d = jq.data("mydata");可以在JQuery对象jq上获取key为mydata的缓存数据。
jq.data("mk", "mv");可以在JQuery对象jq上缓存数据,键是mk,值是字符串“mv”。
data可以缓存任何JS对象,例如字符串、数组、json等等。
需要注意的是,key(键)中的字母只能用小写。
attr()是获取或设置某个元素的属性。
input type="text" name="userName" title="请输入用户名称!"
定义和用法
根据该方法不同的参数,其工作方式也有所差异。
当该方法用于返回属性值,则返回第一个匹配元素的值。
当该方法用于设置属性值,则为匹配元素设置一个或多个属性/值对。
例如:
获取输入框的title属性:$("input[name=userName]").attr("title");
设置输入框的title属性:$("input[name=userName]").attr("title","请输入姓名!");
扩展资料:
相关语法
返回属性的值:$(selector).attr(attribute)
设置属性和值:$(selector).attr(attribute,value)
使用函数设置属性和值:$(selector).attr(attribute,function(index,currentvalue))
设置多个属性和值:$(selector).attr({attribute:value, attribute:value,...})
参考资料来源:百度百科-attr()
参考资料来源:百度百科-jQuery
两者从中文意思理解,都是获取/设置属性的方法。
attr 方法一般用于操作自定义属性,通过访问、操作 DOM 元素的属性节点来工作,类似 JS 中的 setAttribute("属性","值")和取得属性值getAttribute("属性"),事实上 jQuery 的源码中也是利用这两个原生方法。
那么为什么还要有 prop 方法呢?不是多此一举吗?其实不然,prop 方法是 jQuery v1.6.1 才新出来的,性能要更好一些,解决了 window 或 document 无法使用 attr 方法的问题,同时在获取元素状态时返回布尔值,大大方便了对状态的判断。prop 一般用于操作 HTML 元素固有属性。
举一些例子来辅助说明吧,假设有如下 HTML 元素:
input type="text" id="ipt1" name="demo"
input type="radio" id="radio" disabled
input type="checkbox" id="ckbox" checked
input type="text" id="ipt3"
input type="text" id="ipt4"
span id="span" data-tip="abc"/span
验证结果如下:
console.group('获取固有属性');
console.log($('#ipt1').attr('name')); // 'demo'
console.log($('#ipt1').prop('name')); // 'demo'
console.groupEnd();
console.group('获取固有属性-状态值');
console.log($('#radio').attr('disabled')); // 'disbaled'
console.log($('#radio').prop('disabled')); // true
console.log($('#ckbox').attr('checked')); // 'checked'
console.log($('#ckbox').prop('checked')); // true
console.groupEnd();
$('#ipt3').attr('readonly', true); // 文本框处于只读状态
$('#ipt4').prop('readonly', true); // 同上
console.group('获取自定义属性');
console.log($('#span').attr('data-tip')); // 'abc'
console.log($('#span').prop('data-tip')); // undefined
console.groupEnd();
console.group('获取不存在的自定义属性');
console.log($('#span').attr('data-none')); // undefined
console.log($('#span').prop('data-none')); // undefined
console.groupEnd();
一、attr():获取,添加,设置属性节点
1.当只有一个参数时为获取属性节点,无论找到多少个元素,都 只会返回第一个元素 的属性节点的值
2.当有两个参数时为 添加 或 设置 属性节点的值
(1).如果设置的属性不存在,则为 所有找到的元素 添加新属性节点
(2).如果设置的属性存在,则为 所有找到的元素 设置属性节点
二、removeAttr(): 删除 所有找到的属性节点
二、操作多个属性节点时
1.attr():使用对象的形式
2.同时删除多个属性节点, 添加空格 即可
相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties)。只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes。prop应运而生了。
attr:
描述: 获取匹配的元素集合中的第一个元素的属性的值。
attr( attributeName )
attributeName
类型: String
要获取的属性名称 .attr()方法只获取第一个匹配元素的属性值。
prop:
描述: 获取匹配的元素集中第一个元素的属性(property)值
prop( propertyName )
propertyName
类型: String
要得到的属性的名称 .prop()方法只获得第一个匹配元素的属性值 。如果元素上没有该属性,或者如果没有匹配的元素。那么该方法会返回undefined值。