JQuery(2)属性操作

属性操作

JQuery中封装了一些HTML标签属性的操作,可以用来简化原生JS中对HTML标签的操作,对这些封装的方法进行分类的话,大致可以分为适用于一般属性的操作(通用的)专门针对于类属性的操作,常用的共有下面的这些:

通用属性操作

  • attr:这种一般用于不是检查DOM状态的一些属性,比如src,CSS相关的一些属性等。

    • JQuery对象.attr(“属性名称”, “值”): 当只有一个参数时获取属性的值,当出入value参数时设置属性的值。

    • JQuery对象.removeAttr(“属性名称”): 将对应的属性从对应的组件中移除。

    • 语法:$(selector).attr(“key”, “value”);

      示例:

    var src = $("img").attr("src");	//获取值
    $("img").attr("src", img_path);	//设置值
    $("img").removeAttr("src");		//移除src属性
    
  • prop:一般用于组件中的checked,disabled,selected等属性的操作。

    • JQuery对象.prop(“属性名称”, “值”):当只有一个参数时获取属性的值,当出入value参数时设置属性的值。

    • JQuery对象.removeProp(“属性名称”): 将对应的属性从对应的组件中移除。

    • 语法:$(selector).prop(“key”, “value”);

      示例:

      <input type="checkbox" checked="checked" />
      <script>
      	$("input").prop("checked");	//获取checkbox的选中状态
          $("input").prop("checked", false); //设置为没有选中状态
          $("input").prop({
               
               checked:false});	//使用对象的方式也是可行的
          $("input").removeProp("checked"); //移除由.prop设置的属性
      </script>
      

关于prop和attr对一些内置属性的使用效果:以此为例,表格右边的是方法返回值的情况:

elem.checked true (Boolean) 将随着复选框状态的改变而改变
$(elem).prop("checked") true (Boolean) 将随着复选框状态的改变而改变
$(elem).getAttribute("checked") "checked" (String) 复选框的初始状态;不会改变
$(elem).attr("checked") (1.6) "checked" (String) 复选框的初始状态;不会改变
$(elem).attr("checked") (1.6.1+) "checked" (String) 将随着复选框状态的改变而改变
$(elem).attr("checked") (pre-1.6) true (Boolean) 将随着复选框状态的改变而改变

注意:在1.x版本中attr是可以设置,获取内置的属性如checked等的,但是新的版本3.x已经不允许了,只能用prop来获取,所以在对内置属性进行操作的时候建议使用prop来进行操作。

Class类属性操作

可以使用JQuery中封装的方法很便捷的给组件class属性添加属性值,比如添加多个CSS类来给组件添加样式等,常用的有:

  • $(selector).addClass(“className”): 会将对象的类属性值添加到对应的对象中.
  • $(selector).removeClass(“className”):将对象的类属性值删除.
  • $(selector).toggleClass(“className”):改变对象的类属性值的状态,如果已经有该值了,删除该值,如果没有,添加该值,可以用此来进行属性的翻转。–》点击按钮属性改变样式~
  • $(selector).css(key, value):设置元素的样式.

示例:

<style>
    .class1{
     
     width:100px; height:100px;}
    .class2{
     
     border:1px solid blue; border-radius:10%;}
    .class3{
     
     backgound-color:pink;}
</style>

<script>
    //一般适用时都是通过对应的方法来进行动态设置样式
   
	$("div").addClass("class2");	//添加class2样式
    $("div").removeClass("class1");	//移除class1样式
    $("div").toggleClass("class3");	//由于div中class属性中原本没有class3值,则会添加
	$("div").css("backgroundColor", "yellow");	//设置背景色为yellow
</script>

<body>
    <div class="class1">
        这是一个div
    </div>
</body>

属性值操作

  • $(selector).html(): 获取元素的html值,跟JS原生对象中的innerHTML一样,
  • $(selector).text(): 获取元素的文本值
  • $(selector).val(“value”): 传递value参数时可以设置value属性的值,没有时获取value属性的值,可以用于input标签中

.html()与.text()的区别:

<div><p>“这片大海不可能一直自己一个人的”</p></div>
<input value="">
<script>
	$("div").html();	//会获取div内置中所有的内容,即整个p标签
    $("div").text();	//只会获取“这片大海不可能一直自己一个人的” 这段文本内容
    $("input").val("hello jquery");	//可以设置input输入框的内容为 hello jquery
</script>

更多内容可以查看:属性操作官方文档
JQuery本地文档下载:CSDN下载
JQuery各个版本下载:CSDN下载

猜你喜欢

转载自blog.csdn.net/weixin_44184990/article/details/107735640