jQuery 第四章 实例方法 DOM操作之data方法

jquery 里面 的 data 方法比较重要, 所以成一个模块写:

首先, 得知道 data()  干嘛用的,

看淘宝上 有自定义的属性, 为data -  什么什么,   这是为了dom 跟数据有联系,存信息, 存数据。以便以操作, 但是淘宝 把data 等放在行间样式上, 是为了 vue 等 其他框架的使用,在jquery中, jquery为我们提供了一个方法, 就是.data() 以便于我们存信息, 存数据。是用jquery 时,不推荐把 data等信息,写在行间样式了,性能不高,还频繁的操作dom 很损性能。

  下面,了解data方法的使用。

  .data()

当然,data 可以放 一系列 东西,  例如 最简单的 值,还能放 对象 等等。

下面来看一个小的应用

有点像购物车一样, 点击add 添加, 会把 该物品的 价钱, 加到sum 去。

代码如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Document</title>
 9     <style>
10         .tpl{
11            display:none;
12         }
13     </style>
14 </head>
15 <body>
16
17     <!-- 基本外框如下 -->
18     <div class="wrapper">
19         <!-- 下面 ↓ 这里相当于一个 模板,有多少个商品,就有多少个结构,只需要一个,等下clone 它就可以了 -->
20         <div class="tpl">
21             <p></p>
22             <span></span>
23             <button>add</button>
24         </div>
25
26         <p class="show">
27             <span>sum</span>
28             <span class="sum">0</span>
29         </p>
30
31
32     </div>
33
34     <script src="./jquery/jquery.js"></script>
35     <script>
36         var shopArr = [ //模拟 后端传给前端的数据。
37             {
38                 name: ‘james solider‘,
39                 shopName: ‘nike‘,
40                 price: ‘110$‘,
41                 id: ‘1001‘
42             },
43             {
44                 name: ‘Rose crazyLight‘,
45                 shopName: ‘adidas‘,
46                 price: ‘90$‘,
47                 id: ‘2002‘
48             },
49             {
50                 name: ‘curry one‘,
51                 shopName: ‘Under Armour‘,
52                 price: ‘120$‘,
53                 id: ‘3003‘
54             }
55         ];
56
57         shopArr.forEach(function(ele, index){ //拿到数据后,用forEach 循环 遍历它
58             var otpl = $(‘.tpl‘).clone().removeClass(‘tpl‘); //克隆 它, 然后把 原有的类名删除,
59             otpl.data({ //使用 data方法, 把参数 都放到 dom 身上
60                 name: ele.name,
61                 shopName: ele.shopName,
62                 price: ele.price,
63                 id: ele.id
64             })
65                 .find(‘p‘)  //往下找到 p  添加 商品的name
66                     .text(ele.shopName)
67                         .next() //找到同级的 span  添加 该dom 的价钱
68                             .text(ele.price);
69             otpl.insertBefore($(‘.show‘))  //最后,添加好参数的 结构,插到 show 的 上面去 显示页面
70
71         })
72
73         $(‘button‘).click(function(){ // 给按钮绑定点击事件, 每点击一次, 加 该 dom 的 价钱
74             $(‘.sum‘).text(  +$(‘.sum‘).text() +  parseInt($(this).parent().data(‘price‘) ))
75                         // ↑  这里用了一个 隐式类型转换 把字符串转成 数字
76             //  获取 sum 添加文本, 文本就是 绑定在 dom 身上的 data参数
77         })
78     </script>
79
80 </body>
81 </html>

原文地址:https://www.cnblogs.com/yanggeng/p/10897813.html

时间: 2024-10-28 15:30:29

jQuery 第四章 实例方法 DOM操作之data方法的相关文章

jQuery 第二章 实例方法 DOM操作取赋值相关方法

取赋值相关方法:   .html() .text() .val() .size() .addClass() .removeClass() .hasClass() .html() html方法干嘛的呢,底层原理 是用原生js的 innerHTML 实现的,接下来,来看一下怎么使用它, 有什么区别. 其实基本使用跟innerHTML 差不多,但是正常的jquery 方法来讲,$('ul li').html() 像这样,你选的是ul 下面的全部li,正常来讲,取出的值应该是 有多少个li  就取多少个

锋利的jQuery第四章:jQuery中的事件和动画

第一部分 1, (1)$()是$(document)的简写,默认参数是document. $(function(){}是$(document).ready(function(){})的简写. 2, (1)事件绑定 bind(type [,data],fn); type是事件类型,有blur,focus,load,resize,scroll,unload,click,dbclick,mousedown,mouseup, mouseover,mousemove,mouseout,mouseenter

认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法

(一)认识JQuery  JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法    JQuery的主旨:以更少的代码,实现更多的功能 (二)JQuery的优势 1)可以像CSS一样访问和操作DOM 2)修改CSS控制页面外观 3)简化JS代码操作 4)事件代理更加容易 5)动画效果使用方便 6) Ajax技术更加完美 7)大量的基于Jquery的插件 8)可以自定义扩展功能插件 (三)JQuery的语法 格式:$(selector).actio

jquery学习(二)-DOM操作

来自锋利的jquery第二版 一.DOM分类 DOM分为3类DOM Core(核心).HTML-DOM.CSS-DOM 1.DOM Core:其并不专属于javascript,任何一种支持DOM程序设计的语言都可以使用它.如javascript中的getElementById.getElementByTagName.getAttibute和setAttribute等方法,就是DOM Core的组成部分. 2.HTML-DOM:其比DOM Core出现的还要早,它提供了一些更简明的记号来描述各种H

jQuery第四章

jQuery中的事件和动画 一.jQuery中的事件 1.加载DOM (1)执行时机 $(document).ready()方法和window.onload方法有相似的功能,但是在执行时机方面是有区别的.window.onload方法是在网页中所有元素完全加载到浏览器后才执行,而$(document).ready()是在DOM完全就绪时就可以被调用.另外需要注意的是,假设在DOM就绪时调用了$(document).ready()方法,有可能此时元素的关联文件还未下载完.例如与图片有关的HTML下

jQuery 【事件】【dom 操作】

事件  hover( function(){},function(){})   --  鼠标移入移出事件   toggle(function(){},function(){},function(){},....)  -- 循环执行,花括号内各方法循环执行  对象.live("事件名",function(){});  -- 对未来创建的元素进行操作 -- btn1 的点击事件中创建 class="div2" 的 div 放到 id="div1" 的

jQuery使用(四):DOM操作之查找兄弟元素和父级元素

查找兄弟元素 向下查找兄弟元素 next() nextAll() nextUntil() 向上查找兄弟元素 prev() prevAll() prevUntil() 查找所有兄弟元素 siblings()  1.1.1.next()方法用来查找下一个兄弟元素,可以传参也可以不传参.参数可以是任意jQuery选择器,表示如果下一个元素如果是指定的元素就选定.当没有选中指定的元素时,jQuery链式调用还是保持原来的jQuery对象. <!-- next --> <button>点我&

jQuery 第五章 实例方法 详解内置队列queue() dequeue() 方法

.queue() .dequeue() .clearQueue() --------------------------------------------------------------------------   .queue() 往队列 里面放东西 参数: .queue([queueName], fuc(next)) queueName: 队列名,字符串形式, 默认是 fx  fuc(next) : 可传函数, 等一系列 值. 他会把你的值, 放到 数组里面. (next) 如果你函数

jQuery 第五章 实例方法 详解动画之animate()方法

.animate()   .stop()   .finish() ------------------------------------------------------------------------------ .animate() 参数:(target, duration, easing, callback) target:  到达的目标点, 例如{ width : '+=100', height: '+=100'}  选择器选中的元素的宽和高,加上100.值 可以写 数字  10