什么是属性操作?
就是和属性有关的操作,
- 获取,html(),attr(),val()
- 删除,removeClass(参数),removeAttr(参数)
- 修改,html(value),val(value),attr(xx1,xx2)
获取,删除容易,修改略麻烦~
image.png
jquery的属性操作在原生js中也能完成么?
必然,比如innerHTML·
添加class属性
<div id="test">part 1</div>
<div>part 2</div>
<div>part 3</div>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$("div:nth-child(odd)").addClass("demo")
//为奇数行添加class demo
$("div.demo").css("background-color","yellow")
//设置class为demo的行变为黄色
</script>
结果是没有一行变黄
移除class属性
<div class="demo">part 1</div>
<div>part 2</div>
<div>part 3</div>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$("div:first").removeClass("demo");
$("div.demo").css("background-color","yellow");
</script>
结果返回part 1.
返回匹配元素的html内容
<div class="demo">part 1</div>
<div>part 2</div>
<div>part 3</div>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$s=$("div:first").html();
alert($s)
</script>
返回匹配元素的属性
<div class="demo">part 1</div>
<div>part 2</div>
<div>part 3</div>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$s=$("div:first").attr("class");
alert($s)
</script>
结果为demo。注意attr的参数里必须写上是要获取哪个属性。
那么修改匹配元素的属性呢?
<div class="demo">part 1</div>
<div>part 2</div>
<div>part 3</div>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
var $s=$("div:first")
$s.attr("class","rand");
var v=($s).attr("class");
alert(v)
</script>
总结
attr()方法一个参数就是获取属性,两个参数就是修改属性。对比html方法与val方法,没有参数就是获取,有一个参数就是修改。这是由于attr的特点决定了。因为选择器选择了一个元素,但是一个元素也是有很多属性。