prop() & attr()
prop() --------> property
attr() ---------> attribute
元素的属性:
1. 固有属性(特性):id, class, name, value, src, href, title, alt, type 等系统定义好的属性
2. 新增属性:自定义的属性
- attr()能获取所有属性
prop()只能获取固有属性,获取自定义属性返回undefined- 赋值同上
- 两者都是取值取一个,赋值赋一组
- 参数:str; str,value ; object
- attr()获取未设置的属性,返回undefined
prop()获取未设置的固有属性,返回一个空
获取:
<div class="ook" id="p-a" myName='only-attr'>div1</div>
<div class="ook2" id="p-a2" myName='only-attr2'>div1</div> <!--取不到-->
<script src='./jQuery-3.4.1.js'></script>
<script>
console.log($('div').prop('class')); //ook
console.log($('div').attr('class')); //ook
console.log($('div').prop('id')); //p-a
console.log($('div').attr('id')); //p-a
console.log($('div').prop('myName')); //undefined
console.log($('div').attr('myName')); //only-attr
</script>
赋值:
<div></div>
<div></div>
<input type='text'>
<script>
$('div').prop('id','p-id');
$('div').attr('class','a-clas');
//参数也能是对象
$('div').prop({
class: 'p-claName',
id: 'p-idName'
});
$('div').attr({
class: 'at-claName',
myName: 'only-attr'
});
</script>
获取未设置属性:
$('input').prop('class'); //
$('input').prop('myName'); //undefined
$('input').attr('class'); //undefined
$('input').attr('myName');//undefined
removeProp(), removeAttr()
removeProp()只能移出自定义的属性;
removeAttr() 可移除所有属性
removeProp(’属性名‘)
removeAttr(‘属性名’)
对固有属性,要去除可以将其值设为false 或 空
$(‘input’).prop(‘checked’, false);
$(‘input’).prop(‘checked’, true);
$(‘input’).attr(‘checked’, false);
$(‘input’).attr(‘checked’, true);