大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新......

在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!

一、元素的创建添加和删除

1、方式一:以对象的方式创建元素

  • append,appendTo :在被选元素所有子元素的结尾插入内容(增加子元素)。
  • prepend,prependTo:在被选元素所有子元素的开头插入元素(增加子元素)。
  • before:在当前被选元素之后插入内容(相当于增加兄弟元素)。
  • after:在当前被选元素之前插入内容(相当于增加兄弟元素)。

语法:

  1. // 元素的创建
  2. $("html代码");
  3. // $("<a herf='http://fengdaoting.com'>Daontin</a>")
  4. // 元素的添加(被动)
  5. 父元素.append(子元素); // $("#dv").append($("<a>...</a>"));
  1. // 元素的添加(主动)
  2. 子元素.appendTo(父元素); // $("<a>...</a>").appendTo($("#dv"));

案例:动态创建列表

  1. <script>
  2. $("#btn1").click(function () {
  3. var ulObj = $("<ul></ul>");
  4. // 创建ul添加到div
  5. $("#dv").append(ulObj);
  6. // 创建li添加到ul,并设置鼠标进入离开事件
  7. $("<li>鸣人</li><li>卡卡西</li><li>佐助</li>").appendTo(ulObj).mouseenter(function () {
  8. $(this).css("backgroundColor","yellow");
  9. }).mouseleave(function () {
  10. $(this).css("backgroundColor","");
  11. });
  12. });
  13. </script>

注意:获取的元素通过 append 或者 appendTo 的方式添加到另一个元素的时候,相当于剪切。如果要保留获取的元素,可以在 append 或者 appendTo 之前使用克隆 clone() 方法。

2、方式二:以字符串的方式创建元素

语法:

  1. 父元素.html("html代码");
  2. // $("#dv").html("<a herf='http://fengdaoting.com'>Dao</a>");

3、元素的删除

3.1、清除父元素中所有的子元素

语法1:

  1. 父元素.html("");

语法2:

  1. 父元素.empty();

3.2、清除单个子元素

语法:

  1. 子元素.remove();

二、元素 value 属性的操作

一般 val() 是获取表单的 value 属性;

val(值); 设置表单的 value 属性。

示例1:获取设置文本框value的值

  1. <input type="text" value="text" id="txt">
  2. //------------------------------------------
  3. <script>
  4. $("#btn1").click(function () {
  5. // 获取文本框的value属性值
  6. console.log($("#txt").val());
  7. // 设置文本框的value属性值
  8. $("#txt").val("text2");
  9. });
  10. </script>

示例2:获取设置单选框value的值

  1. <input type="radio" value="1" name="sex" id="nan">
  2. <input type="radio" value="2" name="sex">
  3. //-----------------------------------------------
  4. console.log($("#nan").val());
  5. $("#nan").val("3");

示例3:获取设置复选框value的值

  1. <input type="checkbox" value="1">吃饭
  2. <input type="checkbox" value="2" id="c1">睡觉
  3. <input type="checkbox" value="3">大豆豆
  4. //---------------------------------------
  5. console.log($("#c1").val());
  6. $("#c1").val("33");

示例4:获取设置文本域value的值

  1. <textarea name="text" id="t1" cols="30" rows="10">
  2. 等你下课
  3. </textarea>
  4. //------------------------------------------------
  5. console.log($("#t1").val()); // 等你下课
  6. $("#t1").val("Jay");
  7. console.log($("#t1").val()); // Jay
  8. // 成对的标签可以使用 text() 方法来获取和设置
  9. console.log($("#t1").text());// 等你下课
  10. $("#t1").text("Jay");
  11. console.log($("#t1").text());// Jay

1、使用 val() 进行设置之后,在源码中 value 的值没有改变,但是打印出来的值改变了。

2、使用 text() 行设置之后,在源码中 value 的值也改变了。

3、成对的标签可以使用 text() 方法来获取和设置,推荐使用 text();

示例5:获取设置下拉框value的值

  1. <select id="s1">
  2. <option value="1">op1</option>
  3. <option value="2">op2</option>
  4. <option value="3">op3</option>
  5. <option value="4">op4</option>
  6. <option value="5">op5</option>
  7. </select>
  8. //-----------------------------------
  9. console.log($("#s1").val());
  10. $("#s1").val("3");
  11. console.log($("#s1").val());

1、获取下拉框的 value 属性,就是获取 option 的 value 的值

2、设置下拉框的 value 属性,就是选中相应 value 值的 option 标签。

三、自定义属性

1、attr

语法:

  1. 元素.attr("自定义属性名""自定义属性值");

示例:

  1. <div id="dv"></div>
  2. //-------------------------------------------
  3. $("#dv").attr("hello","world"); //<div id="dv" hello="world"></div>
  4. $("#dv").attr("id","box"); //<div id="box"></div>

1、attr 方法主要操作元素的自定义属性的,但是也可以操作元素的自带属性。但是操作元素是否选中的 checked 属性时不合适。

2、操作元素的选中 checked 属性,推荐使用 prop 方法。

自定义属性的选中问题

  1. 元素.attr(); // 获取某个元素是否被选中的状态
  2. 元素.attr("checked",true); //设置某个元素为选中
  1. <input type="radio" value="1" name="sex" id="r1">
  2. <input type="radio" value="2" name="sex">
  3. //-----------------------------------------------
  4. console.log($("#r1").attr("checked"));
  5. $("#r1").attr("checked", true);

PS:attr 方法针对单选框和复选框的是否选中问题操作复杂(选中返回值为 checked,未选中返回值为 undefined,不是直接显示 true 或者 false 那么简单,并且反复操作多次易失效),几乎不用。

2、prop

主要用于获取元素的选中问题。

语法:

  1. 元素.prop("checked"); // 获取这个元素是否选中
  2. 元素.prop("checked",true/false); // 设置这个元素选中或不选中

示例:

  1. <input type="checkbox" value="1">吃饭
  2. <input type="checkbox" value="2" id="c1">睡觉
  3. <input type="checkbox" value="3">大豆豆
  4. //--------------------------------------------
  5. console.log($("#c1").prop("checked")); // false
  6. $("#c1").prop("checked", true); // true

案例:全选与全不选

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. * {
  8. padding: 0;
  9. margin: 0;
  10. }
  11. table {
  12. border-collapse: collapse;
  13. }
  14. td {
  15. width: 100px;
  16. height: 30px;
  17. background-color: #f8f8f8;
  18. border: 1px solid #7b7b7b;
  19. text-align: center;
  20. }
  21. .th td {
  22. background-color: #e95d71;
  23. color: #f8f8f8;
  24. }
  25. .little-td {
  26. width: 50px;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <div id="dv">
  32. <table class="table">
  33. <thead class="th">
  34. <tr>
  35. <td class="little-td"><input type="checkbox"></td>
  36. <td>Web技术</td>
  37. </tr>
  38. </thead>
  39. <tbody class="tb">
  40. <tr>
  41. <td class="little-td"><input type="checkbox"></td>
  42. <td>Web技术</td>
  43. </tr>
  44. <tr>
  45. <td class="little-td"><input type="checkbox"></td>
  46. <td>Web技术</td>
  47. </tr>
  48. <tr>
  49. <td class="little-td"><input type="checkbox"></td>
  50. <td>Web技术</td>
  51. </tr>
  52. <tr>
  53. <td class="little-td"><input type="checkbox"></td>
  54. <td>Web技术</td>
  55. </tr>
  56. </tbody>
  57. </table>
  58. </div>
  59. <script src="jquery-1.12.4.js"></script>
  60. <script>
  61. // 设置总的复选框对子复选框的影响
  62. $(".th input").click(function () {
  63. $(".little-td input").prop("checked", $(this).prop("checked"));
  64. });
  65. // 设置每一个子复选框事件
  66. $(".little-td input").click(function () {
  67. var childLength = $(".tb").find("input").length;//总的子复选框的个数
  68. var actualLength = $(".tb :checked").length;// 已经选中的子复选框的个数
  69. $(".th input").prop("checked", childLength === actualLength);
  70. });
  71. </script>
  72. </body>
  73. </html>

0、border-collapse: collapse; 细线表格。

1、子类复选框的集合在 prop 和 click 中会自动遍历操作。

2、var actualLength = $(".tb :checked").length;.tb:checked 中间有空格,表示的是 类 tb 下面的子元素集合中带有 checked 的元素,而没有空格表示,设置了类 tb 的所有元素集合中带有 checked 的元素。一个是 tb 下面的子元素集合中,一个是 tb 自身元素集合中。

从零开始学 Web 之 jQuery(四)元素的创建添加与删除,自定义属性的更多相关文章

  1. 从零开始学 Web 之 jQuery(三)元素操作,链式编程,动画方法

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  2. 从零开始学 Web 之 jQuery(五)操作元素其他属性,为元素绑定事件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  3. 从零开始学 Web 之 jQuery(二)获取和操作元素的属性

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  4. 从零开始学 Web 之 jQuery(六)为元素绑定多个相同事件,解绑事件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  5. 从零开始学 Web 之 jQuery(一)jQuery的概念,页面加载事件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. 从零开始学 Web 之 jQuery(七)事件冒泡,事件参数对象,链式编程原理

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  7. 从零开始学 Web 之 jQuery(八)each,多库共存,包装集,插件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. 从零开始学 Web 之 DOM(三)innerText与innerHTML、自定义属性

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  9. Javascript及Jquery获取元素节点以及添加和删除操作

    用了javascript和jquery很久,把所有元素节点的操作总结了下,放在博客上作为记录. Javascript获取元素的主要方式有三种 1.document.getElementById('ma ...

随机推荐

  1. 针对Web应用的【攻击模式篇】

    攻击模式:主动攻击.被动攻击. 主动攻击是指攻击者通过直接访问Web应用,把攻击代码传入的攻击模式. 具有代表性的攻击:SQL注入攻击和OS命令注入攻击. 被动攻击是指利用圈套策略执行攻击代码的攻击模 ...

  2. 探索未知种族之osg类生物---渲染遍历之Renderer简介

    我们继续renderingTraversals()的探究.我们接着上一节的”阻塞渲染线程”后就要遍历所有摄像机的渲染器(Renderer),执行 Renderer::cull 场景筛选的操作.我们在r ...

  3. git 忽略文件不起作用

    本人需要提交项目文件,发现总有一些东西不需要提交,然后搜索有”.gitignore”文件可以忽略一些提交,但是发现添加上没有起作用. 要贴的是: /build/ target/ .idea/ *.im ...

  4. ArrayList 初探

    1.ArrayList继承AbstractList,实现List.RandomAccess.Cloneable.Serializable接口 public class ArrayList<E&g ...

  5. Linux 自动挂载硬盘的方法

    每次重启后,都需要手动挂载硬盘( sudo mount ),非常不方便,使用一下步骤可以实现硬盘的自动挂载 第一步  获取硬盘的基本信息(UUID TYPE) sudo blkid 第二步  修改 / ...

  6. leveldb 源码编译 vs版本

    为什么要windows版本? 因为方便调试跟进 VS的体验真的很不错. 搜索了一段时间才发现GITHUB有windows版本的leveldb 但是使用VS编译也有不少坑 可以下载网络上的其他朋友的版本 ...

  7. Alpha 冲刺 (6/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 测试服务器并行能力 学习MSI.CUDA ...

  8. poj 3087 Shuffle'm Up (模拟过程)

    Description A common pastime for poker players at a poker table is to shuffle stacks of chips. Shuff ...

  9. 阅读笔记4 我是一只IT小小鸟

    经过一周连续三四天八小时以上坐在电脑前敲代码的“折磨”,去看看其他经受这些折磨的人的感受.这次读书笔记变成了逗比风,因为前几周认认真真记下书里写的重点内容,然后把学习的内容认真的记录下来的笔记被老师助 ...

  10. 27、通过visual s'tudio 验证 SOCKET编程:搭建一个TCP服务器

    本文就是在windows下进行socket编程,搭建一个TCP客户端. 在visual studio下编程,首先在windows下进行初始化(这点在linux下是不需要的): /* 初始化 Winso ...