一、背景 在编写使用高版本[ jQuery 1.6 开始新增了一个方法 prop()]的jquery插件进行编写js代码的时候,经常不知道dom元素的attr和prop方法到底有什么区别?...="btn">百度主页 在上面这个例子中,href、target、class、id这些dom属性,是a元素本身就具有的。...也是W3C里本身就包含的几个属性,换句话说是IDE中能够自动提示的属性,这些属性就被称为dom元素的固有属性,这种情况下,我建议使用prop方法。 ....那么很明显前两个是该dom元素的固有属性,最后一个是我们自己定义的属性。...a标签中的固有属性中并不包含该属性。这些属性被称为dom元素的自定义属性,这种情况下,我建议使用attr方法。此时若使用prop方法进行设置和获取该属性的值时就会返回undefined值。
Dom操作的分类:DOM Core,html-DOM,CSS-DOM 查找节点: 查找属性节点(通过jq选择器),操作属性节点(attr(‘属性名’,’属性值’)), 操作文本节点(text())读/写...a 删除节点: remove:$(‘#test′).remove();该方法不会把匹配的元素从 jQuery 对象中删除,因而可以在将来再使用这些匹配的元素。...但除了这个元素本身得以保留之外,remove() 不会保留元素的 jQuery 数据。...不占位置 清空节点: empty:$(selector).empty() 从指定元素中移出所有的内容,包括子节点和内容。占位置 复制节点:clone():只复制节点中的内容,不包括任何行为。...将所有的元素进行单独包裹 wrap(“”) wrapAll() 将所有匹配的元素用一个元素来包裹, wrapAll(“”) wrapInner()包裹指定元素中的子内容(包括文本节点) find()方法
Dom操作的分类:DOM Core,html-DOM,CSS-DOM 查找节点: 查找属性节点(通过jq选择器),操作属性节点(attr(‘属性名’,’属性值’)), 操作文本节点(text())读/...a 删除节点: remove:$(‘#test′).remove();该方法不会把匹配的元素从 jQuery 对象中删除,因而可以在将来再使用这些匹配的元素。...但除了这个元素本身得以保留之外,remove() 不会保留元素的 jQuery 数据。...不占位置 清空节点: empty:$(selector).empty() 从指定元素中移出所有的内容,包括子节点和内容。占位置 复制节点:clone():只复制节点中的内容,不包括任何行为。...将所有的元素进行单独包裹 wrap(“”) wrapAll() 将所有匹配的元素用一个元素来包裹, wrapAll(“”) wrapInner()包裹指定元素中的子内容(包括文本节点) find()方法
RT 时至今日,JQuery已经落伍了,已经快要被各种mvvm框架取代(其中著名的莫过于vue,angular,react)。...但是我们很多编码过程中,如果没使用mvvm或者不适应mvvm的人,那么就属JQuery使用的最广泛了。 其中,又数ajax和Dom操作中的append 最为常用。...html代码插入; insertAfter将JQuery封装好的元素插入到指定元素的后面,如果元素后面有元素了,那将后面的元素后移,然后将JQuery对象插入; insertBefore将JQuery封装好的元素插入到指定元素的前面...,如果元素前面有元素了,那将前面的元素前移,然后将JQuery对象插入; empty清空元素内部的html代码,它只是清空内部的html代码,但是标记仍然留在DOM中; remove从DOM中移除整个元素...因为要在某个元素前面添加一个用来显示errorbox 所以,而这个元素不是最后面的,因此只能用这个方法,而只会append的我当时一脸懵逼,索性,想到其他的语言都有insert,没理由JQuery这个框架没有这个方法
为业务需要,DOM元素的ID被命名为“c-order.range”,执行JQuery的DOM查询时,提示如下错误 Uncaught Error: Syntax error, unrecognized expression...解决办法:document.getElementById 以前总觉得这个办法笨拙,现在越觉得此方法强大,几乎就是大杀器,没有查询不了的元素,无论你的元素ID命名多么刁钻。...var rowId = 'c-order.range', view = document.getElementById(rowId), // 将Element对象转换为JQuery对象...unrecognized expression表达式错误 alert(('[id=' + rowId + ']').length) // 将所有的id值用双引号包起来,即可进行识别 // 请注意双引号添加的位置
删除元素 remove() - 删除被选元素(及其子元素) $("#div1").remove(); empty() - 从被选元素中删除子元素 获取并设置 CSS 类 addClass() - 向被选元素添加一个或多个类...outerWidth() outerHeight() jQuery 遍历 jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML 元素。...以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。 向上遍历 DOM 树 parent() - 返回被选元素的直接父元素。...向下遍历 DOM 树 children()- 返回被选元素的所有直接子元素。 find()- 返回被选元素的后代元素,一路向下直到最后一个后代。...noConflict() 方法 jQuery 使用 符号作为jQuery的简写。如果其他JavaScript框架也使用 符号作为简写怎么办?
jquery替换class: 实现方法: ① 使用removeClass()删除旧的class ② 使用addClass()添加新的class ③ 使用attr 直接替换原class ④ 使用...IE=edge" /> Jquery...替换class -青梅博客 jquery.com/jquery-3.0.0.min.js"> ....click(function () { $("p").removeClass("intro1").addClass("intro2"); }); }); jQuery...部分: ① 添加新的样式,移除旧的样式 (addClass、removeClass) .addClass("new-class") .removeClass("old-class"); ② 修改class
: 这里只从 jQuery 的源码分析入手,版本是3.2.1 1. $.data() 方法 data: function( elem, name, data ) { return dataUser.access...value : key; }, 可以看到,$.data(ele) 只会去读取dataUser 结构中存在的数据,而不会去读dom 节点上的 Data 属性相关值。...; ...... return data; ...... } }, 省略绝大部分代码,可以看到,该方法去读取了元素的 attribute,最后返回的 data 会是在attribute...属性中获得的。...所以,第二句打印出来的是{x:"x-value"}. 除此之外,它还会 在 dataUser 的 Cache 中存入此次读出来的 data 数据。
正文 在JDK中已经为我们提供了大量实现了迭代器的容器类。 因此我们可以不用关心,诸如:Linkedlist与ArrayList之间的差别,却仍能保障我们完成工作。...额外定义了add、remove方法,这会辅助我们操作集合中的元素。 注意:迭代器不仅仅为了{迭代},而是为了{操作}集合中的元素。...Array并不关心操作元素的细节,它只向外暴露操作接口,对收到的请求转发给iterator处理。...ArrayIteratorImpl迭代器实现了对数组的添加、移除操作,如何分配元素、选择用什么容器存储、遍历的顺序、甚至是否启用并行操作,这些对于Array都是不可感知的。...迭代器本质:控制访问集合中的元素 ? 迭代器模式.png
1 从集合中通过指定的序号获取元素 0 1 2 3 4 5 6 7</...break; case $(this).is(".aa"): $(this).css("color","yellow"); break; } }) }) 4 获取元素的上一个元素和下一个元素...jQuery(function(){ $("p").next(".yes").css("color","red"); }) //获取元素的上一个元素 jQuery(function(){...$("p").prev(".yes").css("color","red"); }) 5 获取元素的父元素和子元素 1号 ...jQuery(function(){ $("p").parent().css("color","red"); }) //获取元素的子元素 jQuery(function(){ $("#aa
它包含迭代逻辑,这意味着如果其他操作也需要访问数据结构中的每个元素,则还需要在该代码中重复非常相似的迭代逻辑,这就可能违反 DRY(Do not Repeat Yourself)原则。...Jeremy Ashkenas 使这些操作在 JavaScript 中变得很流行,并且通过开创性的 CoffeeScript,为目前 JavaScript 中理所当然的许多重要的快捷语法奠定了基础。...John Resig 开发了流行和有影响力的 jQuery,它形成了可重用的,封装的 JavaScript 模块(jQuery插件)的最大集合,直到几年后标准的 Node 模块和 ES6 模块出现。...jQuery 的选择器 API 影响深远,它构成了当今 DOM Selection API 的基础。...当我对 React 组件进行单元测试时,我仍然几乎每天都会从 jQuery 的选择 API 中受益。 正确的抽象是可以极大地影响生产力的强大杠杆。抽象不是一个脏话。
参考链接: Java 8中迭代带有索引的流Stream 异常信息: java.util.ConcurrentModificationException at java.util.ArrayList$...org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 代码: @Test public void testIterator (){ //测试ArrayList迭代过程中删除元素...class User{ String name = ""; public User(String name){ this.name = name; } } 问题分析:从API中可以看到...Iterator是工作在一个独立的线程中,并且拥有一个 mutex锁,就是说Iterator在工作的时候,是不允许被迭代的对象被改变的。...Iterator被创建的时候,建立了一个内存索引表(单链表),这 个索引表指向原来的对象,当原来的对象数量改变的时候,这个索引表的内容没有同步改变,所以当索引指针往下移动的时候,便找不到要迭代的对象,于是产生错误
之前在写c++的时候,我们想要依次迭代数组之中的元素,只能是用for循环来实现。当我学到python的时候,感受到了直接迭代元素的便捷性,真的是高呼Python真香哈哈哈哈。...现在发现,原来C++11里也添加了这样一个新的功能,真的很棒! 方法很简单,直接上代码!
$.inArray(“元素字符串”, 数组名称); var arry = [ "C#", "html", "css", "JavaScript" ]; var result= $.inArray("...C#", arry); 如果arry数组里面存在”C#” 这个字符串则返回该字符串的数组下标,否则返回(不包含在数组中) -1 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
=``; document.getElementById("wrapper").appendChild(impressionHtml); js向父元素...wrapper中的末尾添加 定义好的html,报错: Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1...在stackoverflow上找到很好的一个解释: ? 所以js是不能直接传入字符串的,但是jquery的append可以直接传入html字符串。
前文回顾 riot.js教程【二】组件撰写准则、预处理器、标签样式和装配方法; riot.js教程【一】简介; 访问DOM元素 你可以通过this.refs对象访问dom元素 而且还有大量的属性简写方式可以使用...,(有时候你需要对这些东西做一些特殊的处理才能用) 使用Jquery 如果你想在riot标签内部访问dom元素 你可能需要了解一下riot标签生命周期相关的知识 你会注意到,mount方法还没执行的时候...,dom元素是不会被创建的 这就意味着,mount方法之前访问DOM元素,是不会成功的 请看如下代码: Do I even Exist?...jquery是一点问题都没有的; 再看下面的代码(两种检索方式都是支持的,第一种就是jquery检索DOM) Do I even Exist...riotjs标签按照如下步骤构造及渲染 Tag构造 Tag内部的js执行 Tag内部的HTML中的表达式被执行 Tag在浏览器上渲染,mount事件触发 一个riotjs标签在浏览器上渲染,mount
在使用jquery中动态新增的元素节点时会发现添加的事件是无法触发的,我们下面就为各位来详细的介绍此问题的解决办法. ...),想必后面通过ajax加载进来的列表中的回复按钮,点击事件会失效。 ...其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件。...解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法,如下: 方法一:使用live live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。...通过live()函数适用于匹配选择器的当前及未来的元素。比如,通过脚本动态创建的元素。
一、正确引用jQuery 尽量在body结束前才引入jQuery,而不是在head中。 借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现问题时,要引入本地的jQuery文件。...元素时,可以使用下边代码: $('.home'); //1 $('#nav a.home'); //2 $('#nav').find('a.home'); //3 方法1:会使jQuery在整个DOM中查找...// 糟糕$('.container > *');// 建议$('.container').children(); 2.5、选择捷径 精简代码的其中一种方式是利用编码捷径。...,既可以将一个上下文参数传入jQuery,以限制它只搜索DOM中特定的一部分。...//糟糕,会遍历整个DOM$(".class");//建议,只搜索#id元素$(".class","#id"); jQuery选择器的性能比较: $(".class","#id") > $("#id .
可以方便的把html改写成ejs。 eco 页面模板,类似ejs。...与ejs的不同点是:逻辑部分用CoffeeScript而不是javascript jade 页面模板 源自ruby的haml 比ejs优雅简洁,但把html转换成jade要花一番功夫。...是在mongodb-native的基础上做的封装。 mongoose mongoDB驱动。 mysql mysql驱动。 log4js 日志。 cheerio 解析html文档。...解析的结果可以用jQuery的写法来筛选想要的dom元素。 JSDOM 和cheerio类似。但更强大。但要在windows安装是各种麻烦。...bower 包管理工具 yo 项目的框架生成工具 yeoman 开发web工作流管理工具 YO,Grunt,Bower 组成 预编译 coffeescript 将coffeescript编译成
在整个DOM中查找class为home的a元素,性能可想而知。...// 糟糕 $('.container > *'); // 建议 $('.container').children(); 2.5、选择捷径 精简代码的其中一种方式是利用编码捷径。...,既可以将一个上下文参数传入jQuery,以限制它只搜索DOM中特定的一部分。...//糟糕,会遍历整个DOM $(".class"); //建议,只搜索#id元素 $(".class","#id"); jQuery选择器的性能比较: $(".class","#id") > $("#id...7.1、繁重的操作中分离元素 如果你打算对DOM元素做大量操作(连续设置多个属性或css样式),建议首先分离元素然后在添加。