jQuery实现对网页节点的增删改查功能示例


Posted in jQuery onSeptember 18, 2017

本文实例讲述了jQuery实现对网页节点的增删改查功能。分享给大家供大家参考,具体如下:

前面介绍过《JavaScript针对网页节点的增删改查用法》,其实JavaScript对DOM的操作已经总结了很久的,而对于jQuery对网页节点的操作,虽然一直在用,但一直没有好好总结一下,实在是不应该。

下面举同样的例子来说明这个问题:

jQuery实现对网页节点的增删改查功能示例

如上图,提供3个按钮,1个下拉列表,1个输入框,提供增删改查的操作。

网页中最多10个节点,最少0个节点,多了不让加,少了不让减。

首先是本网页的基本布局:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>jQuery对网页节点的增删改查</title>
    <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
  </head>
  <body>
    <button>增加节点</button>
    选择节点
    <select id="nodeList"></select>
    <button>删除节点</button>
    <input type="text" />
    <button>修改节点</button>
    <div></div>
  </body>
</html>

首先引入jQuery资源,之后,除了下拉列表以外其余节点没有ID,以展示两个Jquery获取节点的方式,一种通过id直接获取,一种通过获取子节点的方式的获取。

这里没什么特别的,关键是下面的jQuery编程:

<script type="text/javascript">
  var i = 1;//定义一个节点的id
  $("body>div").css("border","1px solid #cccccc");//先把body下面的所有div的上style="border:1px solid #cccccc"属性。此乃jQuery对节点的css操作。
  $("body>button:eq(0)").click(function(){//body下面的第0个按钮的onclick事件
    if (i < 11) {//如果节点数少于在1-10之间
      $("body>div").append("<p id='p" + i + "'>text" + i + "</p>");//则在body下面的所有div,也就是唯一一个div中添加上id=p1,p2,p3...的节点,且文本为text1,2,3...
      $("#nodeList").append("<option id='option" + i + "' value='" + i + "'>text" + i + "</p>");//同时在下拉列表中加上id=option1,option2....,value=1,2,3...的选项,一会儿,供下面的修改、删除使用
      i++;//节点数加1
      $("body>div").css("border","1px solid #cccccc");//如果符合要求,使边框变灰
    }
    else {//如果不符合要求,弹出警告,使边框变红
      alert("最多10个节点!");
      $("body>div").css("border","1px solid #ff0000");
    }
  });
  $("body>button:eq(1)").click(function(){//body下面的第1个按钮的onclick事件
    if (i > 1) {
      var removeId = $("#nodeList").val();//获取要下拉列表中的值
      $("#option" + removeId).remove();//删除相应的选项、p节点
      $("#p" + removeId).remove();
      i--;//节点数减1
      $("body>div").css("border","1px solid #cccccc");
    }
    else{
      alert("最少0个节点!");
      $("body>div").css("border","1px solid #ff0000");
    }
  });
  $("body>button:eq(2)").click(function(){//body下面的第2个按钮的onclick事件
    if (i > 1) {
      var updateText = $("body>input[type='text']").val();//获取文本框的输入内容
      var updateId = $("#nodeList").val();//获取下拉拉列表中的值
      var updateFlag = true;//用来验证是否有同名节点的flag
      $("body>div>p").each(function(){//遍历div下的所有p节点
        if(updateText==$(this).html()){//如果输入的值等于p节点的值
          alert("已有同名节点,不得修改!");//则弹出警告
          $("body>div").css("border", "1px solid #ff0000");
          updateFlag = false;//收起flag
        }
      });
      if (updateFlag) {
        if (updateText != "") {
          $("#option" + updateId).html(updateText);//修改下拉列表中的值
          $("#p" + updateId).html(updateText);//修改相应p节点的值
          $("body>input[type='text']").val("");//清空输入框
          $("body>div").css("border", "1px solid #cccccc");
        }
        else {
          alert("修改内容不得为空!");
          $("body>div").css("border", "1px solid #ff0000");
        }
      }
    }
    else{
      alert("没有节点,修改毛线!");
      $("body>div").css("border", "1px solid #ff0000");
    }
  });
</script>

可以看到,这里jQuery设置css是先指明要修改的css属性,再写上要修改的内容,Javascript修改css则是对节点的style修改。

jQuery对节点的遍历,用each方法则可以。Javascript则要对要遍历的节点,赋予name,然后利用document.getElementbyName将所有name拿下,则进行遍历。

jQuery删除一个节点,比Javascript简便多了,一个remove()搞掂一切,Javascript则要找自己的父节点测能删除自己。

jQuery找子节点,可以直接用>符号来查看,Javascript则要通过xx.getElementsByTagName去查找。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
Jquery-data的三种用法
Apr 18 jQuery
bootstrap+jQuery实现的动态进度条功能示例
May 25 jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 jQuery
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
Vue+jquery实现表格指定列的文字收缩的示例代码
Jan 09 jQuery
vue-cli webpack 引入jquery的方法
Jan 10 jQuery
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
jQuery实现模糊查询的方法分析
May 10 jQuery
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 jQuery
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 jQuery
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 #jQuery
jQuery实现火车票买票城市选择切换功能
Sep 15 #jQuery
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 #jQuery
jQuery plugin animsition使用小结
Sep 14 #jQuery
jquery 键盘事件的使用方法详解
Sep 13 #jQuery
React中jquery引用的实现方法
Sep 12 #jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 #jQuery
You might like
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
js自定义事件代码说明
2011/01/31 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
Django学习笔记之Class-Based-View
2017/02/15 Python
Python中的取模运算方法
2018/11/10 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
Opencv求取连通区域重心实例
2020/06/04 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
C语言笔试集
2012/07/24 面试题
学习交流会主持词
2014/04/01 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers