jQuery 操作 DOM 及 CSS

简介: 本文介绍了如何使用jQuery进行DOM操作和CSS样式的修改,包括如何获取和设置元素的文本内容、属性值、添加和删除元素,以及如何使用jQuery的addClass、removeClass、toggleClass、hasClass和css方法来操作元素的CSS。通过示例代码,展示了jQuery在实际开发中的便捷性。

1. jQuery 修改|获取页面元素文本及属性值

text() - 设置或返回所选元素的文本内容

html() - 设置或返回所选元素的内容(包括 HTML 标签)

val() - 设置或返回表单字段的值

attr() - 方法用于获取属性值。


1.1 举例:利用jQuery获取页面元素的文本内容以及输入框的值和属性值。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>jquery学习</title>
</head>

<body>
  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script>

  <div id="demo1">
    <p>hi ~~~~ </p>
    <p>2023-05-18</p>
  </div>
  <form action="" >
     <input type="text" name="username" value="admin" id="uname"><br>
     <input type="password" name="password" value="00000" id="upwd"><br>
     <input type="submit" value="提交">
  </form>
  <script>
      // 获取id为demo1下的所有p标签的文本值
      console.log($("#demo1>p").text());
      console.log($("#demo1").html());
      // 获取表单form中的字段值
      console.log($("#uname").val());
      console.log($("#upwd").val());
      // 获取输入框的属性值
      console.log($("#uname").attr("value"));
      console.log($("#uname").attr("name"));
  </script>
</body>

</html>

在这里插入图片描述


1.2 举例:利用jQuery修改页面元素的文本内容,输入框的值和属性值

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>jquery学习</title>
</head>

<body>
  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script>

  <div id="demo1">
    <p>hi ~~~~ </p>
    <p>2023-05-18</p>
  </div>
  <form action="" >
     <input type="text" name="username" value="admin" id="uname"><br>
     <input type="password" name="password" value="00000" id="upwd"><br>
     <input type="submit" value="提交">
  </form>
  <script>
      // 修改id为demo1内的元素内容
      $("#demo1").html("<h3>新增h3标题</h3><p></p><p></p>");
      // 修改id为demo1下的所有p标签的文本值
      $("#demo1>p").text("嗯呢,哈哈哈");
      //修改表单form中的字段值
      $("#uname").val("张三");
      $("#upwd").val("123");

  </script>
</body>
</html>

在这里插入图片描述


2. jQuery 添加元素和删除元素

通过 jQuery,可以很容易地添加和删除新元素/内容。

jQuery为我们提供了四个添加元素的方法:

  • append() - 在被选元素的结尾插入内容
  • prepend() - 在被选元素的开头插入内容
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容

两个删除方法:

  • remove() - 删除被选元素(及其子元素)
  • empty() - 从被选元素中删除子元素

2.1 举例: 添加元素

append() - 在被选元素的结尾插入内容;prepend() - 在被选元素的开头插入内容;after() - 在被选元素之后插入内容;before() - 在被选元素之前插入内容。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>jquery学习</title>
</head>

<body>
  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script>

      <div id="demo1">
        <h2>原有内容</h2>
      </div>
  <script>
      // 获取demo1,开始添加元素
      var demo1 = $("#demo1");
      // prepend 
      demo1.prepend("<h3>prepend 新增h3标题</h3>") ;
      // append 
      demo1.append("<h3>append 新增h3标题</h3>");
      // before
      demo1.before("<h3>before 新增h3标题</h3>");
      // after
      demo1.after("<h3>after 新增h3标题</h3>");
  </script>
</body>

</html>

在这里插入图片描述

观察一下,perpend 和 append 是将元素插入到了选择的元素的内部,然后prepend是在原有的之前插入,append是在原有的之后插入。

before 和 after 是在元素的外侧插入,before 是之前,after是之后。


2.2 举例: 删除元素

remove() - 删除被选元素(及其子元素),empty() - 从被选元素中删除子元素。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>jquery学习</title>
  <style>
    /* 为了方便观察结果,给ul加个样式 */
    .List{
    
      border: 1px solid darkorange;
      width: 200px;
      height: 200px;
      background-color: #eee;
    }
  </style>
</head>

<body>
  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script>
     <ul class="List">
      <li>Java</li>
      <li>c</li>
      <li>c++</li>
      <li>c#</li>
      <li>golang</li>
      <li>rust</li>
      <li>php</li>
      <li>python</li>
     </ul>
     <button id="btnDelAllLi">清空所有li</button>
     <button id="btnDelAll">删除ul列表</button>
  <script>
     var ulList = $(".List");
     var btnDelAll = $("#btnDelAllLi");
     btnDelAll.click(function(){
    
      ulList.empty();
     });
     var btnDelAll = $("#btnDelAll");
     btnDelAll.click(function(){
    
      ulList.remove();
     });
  </script>
</body>

</html>

empty 测试

在这里插入图片描述
在这里插入图片描述

remove 测试
在这里插入图片描述

在这里插入图片描述


3. jQuery 操作css

jQuery 提供了若干进行 CSS 操作的方法,常用的如下:

  • addClass() - 向被选元素添加一个或多个类
  • removeClass() - 从被选元素删除一个或多个类
  • toggleClass() - 对被选元素进行添加/删除类的切换操作
  • hasClass() - 对被选元素查看是否含有指定的类属性,若有则返回true,无则返回true
  • css() - 设置或返回内联样式属性 (设置返回的是style:"")

3.1 举例:多种方法修改页面元素的css样式

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>jquery学习</title>
  <style>
    .blog {
    
      width: 400px;
      height: 200px;
      background-color: #eee;
      border: 1px solid darkcyan;
      border-radius: 10px;
    }

    .blog-title {
    
      text-align: center;
    }

    .at-block {
    
      text-align: center;
      border-bottom: 1px dotted black;
    }

    .article {
    
      background-color: #eee;
    }

    /* 字体加粗 */
    .weight{
    
      font-weight: bolder;
    }

    /* 字体缩小 */
    .less{
    
      font-weight:lighter;
    }
    /* 字体颜色 */
    .at-color{
    
      color: cornflowerblue;
    }
  </style>
</head>

<body>
  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script>

  <div class="blog">
    <h3 class="blog-title">杀死一只知更鸟的博客</h3>
    <div class="article">
      <p class="at-block">文章名称:SpringMVC 学习笔记---2021/12/01</p>
      <p class="at-block">文章名称:SpringBoot 学习笔记---2022/02/04</p>
      <p class="at-block">文章名称:ThinkPHP6 学习笔记---2023/05/11</p>
    </div>
  </div>
  <button id="upd1">文章字体加粗</button>
  <button id="upd2">文章字体缩小</button>
  <button id="upd3">字体颜色切换</button>
  <button id="upd4">字体变大</button>
  <button id="upd5">字体样式复原</button>
  <script>
      var p = $(".at-block");
      var btn1 = $("#upd1");
      var btn2 = $("#upd2");
      var btn3 = $("#upd3");
      var btn4 = $("#upd4");
      var btn5 = $("#upd5");
      // 文章字体加粗
      btn1.click(function(){
    
        if(p.hasClass("less")){
    
          p.removeClass("less");
        }
        if(!p.hasClass("less")&&!p.hasClass("weight")){
    
          p.addClass("weight");
        }
      });
      // 文章字体缩小
      btn2.click(function(){
    
        if(p.hasClass("weight")){
    
          p.removeClass("weight");
        }
        if(!p.hasClass("weight")&&!p.hasClass("less")){
    
          p.addClass("less");
        }
      });
      // 字体颜色切换
      btn3.click(function(){
    
        p.toggleClass("at-color");
      });
      // 字体变大
      btn4.click(function(){
    
        p.css("font-size","18px");
      })
      // 字体样式复原
      btn5.click(function(){
    
        if(p.hasClass("weight")){
    
          p.removeClass("weight");
        }
        if(p.hasClass("less")){
    
          p.removeClass("less");
        }
        if(p.hasClass("at-color")){
    
          p.removeClass("at-color");
        }
        // 将style内联属性置为空字符串
        p.attr("style","")
        // p.css("font-size","16px") 与上面的方式效果等价
      });
  </script>
</body>

</html>

这个例子的话,可以自行测试。截图太多啦…


相关文章
|
10天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
6天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2506 14
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
6天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1519 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
8天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
531 13
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19282 30
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18836 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17524 13
Apache Paimon V0.9最新进展
|
8天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
458 48
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
1天前
|
云安全 存储 运维
叮咚!您有一份六大必做安全操作清单,请查收
云安全态势管理(CSPM)开启免费试用
355 4
叮咚!您有一份六大必做安全操作清单,请查收
|
2天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。