想要操作属性就必须先了解属性,HTML中的属性分为两种
属性的分类
1、固有属性Property:浏览器给默认给html标签绑定上的属性
常见的固有属性:selected disabled hidden class data type name value src href checked等
2、自定义属性Attribute:用户自己定义,在固有属性列表中没有的属性。
定义方式:自定义属性名=属性值 uname=“admin”
jQuery操作属性的方法:
取值
attr(“属性名”)
prop(“属性名”)
赋值
attr(“属性名”,“属性值”)
prop(“属性名”,“属性值”)
移除属性
removeAttr(“属性名”)
注:
1、attr、prop都可以操作
2、返回boolean类型的属性(selected、checked、disabled)attr返回的是选中的值,未选中返回的是undefined;prop返回的是true/false
3、自定义属性attr可以操作,prop不可以操作
总结:prop操作Boolean类型的属性,其他使用attr操作
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>操作元素的属性</title>
</head>
<body>
<input type="checkbox" name="ch" value="zhangsan" id="aa" checked="checked" uname="admin1" /> aa
<input type="checkbox" name="ch" value="lisi" id="bb" uname="admin2"/> bb
</body>
<!--
想要操作属性就必须先了解属性,HTML中的属性分为两种
属性的分类
1、固有属性Property:浏览器给默认给html标签绑定上的属性
常见的固有属性:selected disabled hidden class data type name value src href checked等
2、自定义属性Attribute:用户自己定义,在固有属性列表中没有的属性。
定义方式:自定义属性名=属性值 uname="admin"
jQuery操作属性的方法:
取值
attr("属性名")
prop("属性名")
赋值
attr("属性名","属性值")
prop("属性名","属性值")
移除属性
removeAttr("属性名")
注:
1、attr、prop都可以操作
2、返回boolean类型的属性(selected、checked、disabled)attr返回的是选中的值,未选中返回的是undefined;prop返回的是true/false
3、自定义属性attr可以操作,prop不可以操作
总结:prop操作Boolean类型的属性,其他使用attr操作
-->
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
// 获取值
console.log("===========固有属性获取值============");
var aa = $("#aa").attr("value");
console.log("attr获取id属性为aa的value的值:" + aa);//zhangsan
var bb = $("#bb").prop("value");
console.log("prop获取id属性值为bb的value的值:" + bb);//lisi
var chk1 = $("#aa").attr("checked");
console.log("attr获取id属性值为aa的checked的值:" + chk1);//checked
var chk2 = $("#bb").attr("checked");
console.log("attr获取id属性值为bb的checked的值:" + chk2);//undefined
var chk3 = $("#bb").prop("checked");
console.log("prop获取id属性值为bb的checked的值" + chk3);//false
// 修改值/赋值
console.log("===========固有属性赋值============");
console.log($("#aa").attr("name"));//未修改之前ch
$("#aa").attr("name","chh");//修改值
console.log($("#aa").attr("name"));//修改之后chh
console.log($("#bb").attr("name"));//未修改之前ch
$("#bb").prop("name","chhh");//修改值
console.log($("#bb").attr("name"));//修改之后chhh
console.log("===========自定义属性赋值============");
console.log($("#aa").attr("uname"));//未修改之前admin1
$("#aa").attr("uname","aaaa");//修改值
console.log($("#aa").attr("uname"));//修改之后aaaa
console.log($("#bb").attr("uname"));//未修改之前admin2
$("#bb").prop("name","bbb");//修改值
console.log($("#bb").attr("uname"));//修改之后admin2;prop无法操作自定义属性
console.log("===========自定义属性赋值============");
console.log($("#bb").attr("uname"));//移除自定义属性之前
$("#bb").removeAttr("uname");//移除自定义属性
console.log($("#bb").attr("uname"));移除自定义属性之后
/*这里注释才可以看到后面三行的代码*/
//console.log($("#aa").attr("checked"));//移除自定义属性之前
//$("#aa").removeAttr("checked");//移除自定义属性
//console.log($("#aa").attr("checked"));移除自定义属性之后
console.log($("#aa").prop("checked"));//移除自定义属性之前
$("#aa").removeAttr("checked");//移除自定义属性
console.log($("#aa").prop("checked"));移除自定义属性之后
</script>
</html>
运行结果(浏览器鼠标右键选择:查看元素/检查或者直接按F12:选择控制台/console进行查看):
最后三行的运行效果: