在DOM操作,除了前面的节点操作以外,常常被用到的操作还有属性操作和节点操作,下面,主要来总结一下jQuery中的属性操作方法和样式操作方法。

在开始操作前,我们需要先在html中添加如下代码,后面所有的操作都是基于该DOM结构进行的。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript" src="jquery-3.2.1.js"></script>
  <style>
    .red{
      color:red;
    }
    .blue{
      color:blue;
    }
    .yellow{
      color:yellow;
    }
    </style>
</head>
<body>
  <p title="选择你最喜欢的水果">你最喜欢的水果是?</p>
  <ul>
    <li title='苹果' class="red">苹果</li>
    <li title='香蕉'>香蕉</li>
    <li title='荔枝'>荔枝</li>
    </ul>
  <script>
  
  </script>
</body>
</html>

属性操作

获取和设置属性

在前面我们提到过一个方法attr(),通过给该方法添加一个参数(属性名称),可以获取相应信息。

$(function(){
var txt = $("ul li:eq(1)").attr("title");
console.log(txt);
})

当给该方法传递多个参数时,可以用来设置相关属性。

$(function(){
$("ul li:eq(1)").attr("title","最喜欢的水果");
$("ul li:eq(2)").attr({"title":"水果","name":"荔枝"});
})

删除属性

在jQuery中,使用removeAttr()方法删除某个元素的特点属性。

 $(function(){
$("p").removeAttr("title");
})

样式操作

获取和设置样式

因为class也是和title一样,也属于元素的属性,所以,我们可以使用attr()来获取和设置元素的class。


$(function(){
  var txt1 = $("ul li:eq(0)").attr("class");
  console.log(txt1);
  $("ul li:eq(0)").attr("class","blue");
  var txt2 = $("ul li:eq(0)").attr("class");
  console.log(txt2);
})

   

使用attr()方法设置样式时,新的样式覆盖了之前的样式。

添加样式

有的时候,我们希望为某个元素添加样式,但是又不覆盖之前原有的样式,很明显,attr()并不能满足我们的要求,这个时候,我们需要用到一个新的方法addClass(),该方法是在不改变原有样式的基础上,在后面添加新的样式。

 $(function(){
var txt1 = $("ul li:eq(0)").attr("class");
console.log(txt1);
$("ul li:eq(0)").addClass("blue");
var txt2 = $("ul li:eq(0)").attr("class");
console.log(txt2);
})

   

移除样式

在上面,我们知道可以用removeAttr()方法删除元素的属性,自然,这个方法可以用来删除元素的样式。

$(function(){
$("ul li:eq(0)").removeAttr("class");
})

 

除了删除属性的方法外,jQuery中,还有一个专门用来删除元素样式的方法:removeClass(),参数为需要删除的类名,该方法可以同时删除一个或多个样式,多个类名中间用空格间隔即可,当该方法不带参数时,表明要删除该元素的所有方法。

 $(function(){
$("ul li:eq(0)").removeClass("red");
})

  

判断是否含有某个样式

hasClass()方法可以用来判断元素中是否含有某个class,如果有,返回true,否则,返回false。

 $(function(){
var txt1 = $("ul li:eq(0)").hasClass("red");
var txt2 = $("ul li:eq(1)").hasClass("red");
console.log(txt1);
console.log(txt2);
})

最新文章

  1. mybatis 对于基本类型数据传值的问题
  2. java equals 和 &quot;==&quot; 比较
  3. fork&amp;exec
  4. Java-马士兵设计模式学习笔记-观察者模式-读取properties文件改成单例模式
  5. ValidateRequest=&quot;false&quot; 无效
  6. Git学习笔记(一)
  7. FineUI页面布局
  8. redis做RDB时请求超时case
  9. angularjs-1.3代码学习 模块
  10. Promise与异步
  11. python numpy库的基本内容
  12. java----java工具类
  13. 582. Kill Process杀死所有子代
  14. validateRequest 相关的作用
  15. VB2008新特性
  16. 为什么php+apache本地站点访问超级慢
  17. 使用FileReader对象的readAsDataURL方法来读取图像文件
  18. CentOS 6.4下安装 Mono 3.2 和Jexus 5.4
  19. 洛谷 P3723 [AH2017/HNOI2017]礼物 解题报告
  20. Javascript代码执行过程-《悟透Javascript》笔记

热门文章

  1. Oracle 12c新特性(For DBA)
  2. python函数def
  3. ansible 循环register
  4. 接收一条音频(系统音频)彩信,点菜单键选择View slideshow,不能播放,提示是否导入vCard
  5. scss学习笔记
  6. Listbox Binding ItemsSource
  7. tensorflow中 tf.add_to_collection、 tf.get_collection 和 tf.add_n函数
  8. 推荐两个Magento做的中文网站 GAP和佰草集
  9. [LeetCode&amp;Python] Problem 637. Average of Levels in Binary Tree
  10. python3反射