首页
学习
活动
专区
圈层
工具
发布

jquery中dom元素的attr和prop方法的理解

一、背景   在编写使用高版本[ jQuery 1.6 开始新增了一个方法 prop()]的jquery插件进行编写js代码的时候,经常不知道dom元素的attr和prop方法到底有什么区别?...也是W3C里本身就包含的几个属性,换句话说是IDE中能够自动提示的属性,这些属性就被称为dom元素的固有属性,这种情况下,我建议使用prop方法。   ...2.我们经常会使用a标签进行触发自定义事件 1 删除文章 这个例子中该DOM元素的属性有:href、id、action....那么很明显前两个是该dom元素的固有属性,最后一个是我们自己定义的属性。...a标签中的固有属性中并不包含该属性。这些属性被称为dom元素的自定义属性,这种情况下,我建议使用attr方法。此时若使用prop方法进行设置和获取该属性的值时就会返回undefined值。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jQuery中的DOM操作

    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()方法

    1.7K20

    jQuery中的DOM操作

    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()方法

    2K70

    JQuery中的Dom操作集合

    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这个框架没有这个方法

    80530

    jQuery 查找on事件绑定元素的被绑定元素方法

    jQuery 查找on事件绑定元素的被绑定元素方法 遇到的问题 今天写了一个JQ插件,结果里面有一点问题.让我很郁闷.问题演示代码如下 $box.on('click', 'img', function(...当然这是正确的. 而我需要找到 $box 也就是 img 的父级. 如果不是插件的话,我当然可以根据它的ID或者CLASS来进行查询.问题是,我是写的插件,也就是说,我并不知道它的这些信息是什么....当然,如果box在DOM中只存在一个的话,那么也没有问题,直接通过box就可以找到了. 问题是 box 也并不是唯一的.所以,我应该怎么知道这个 box 到底是 哪个 有点晕.没关系....解决方法 很多基础的东西不理解,就会出现我这样的问题.如同事所说,你是还不会爬呢,都学上跑了.因此,踩坑无数啊....解决方法如下: $box.on('click', 'img', function(){ $box.has($(this)) }); 如上,通过 .has 操作,就能找到唯一的父级被绑定元素了.

    5.5K10

    jQuery:详解jQuery中的事件(一)

    一、jQuery中的事件   1、加载DOM:   执行时机:在常规的JavaScript中,通常使用window.onload方法,而在jQuery中,使用的是$(document).ready()方法...).ready()方法注册的事件处理程序,在DOM完全就绪时就可以被调用,也即此时网页的所有元素对jQuery都是可以访问的,但是并不是这些元素关联的文件都已经下载完毕。   ...根据上述描述,显然使用jQuery的$(docum).ready()方法时会出现一个问题。由于在该方法内注册的事件,只要DOM就绪就会被执行,因此可能此时元素的关联文件未下载晚。...要解决这个问题,可以使用jQuery中的另一个关于页面加载的方法——load()方法。load()方法会在元素的onload事件中绑定一个处理函数。...   按照需求,需要完成以下几个步骤:   (1)等待DOM装载完毕;   (2)找到“标题”所在的元素,绑定click事件;   (3)找到“内容”元素,将“内容”显示出来。

    2.8K20

    jQuery:详解jQuery中的事件(二)

    上一篇讲到jQuery中的事件,深入学习了加载DOM和事件绑定的相关知识,这篇主要深入讨论jQuery事件中的合成事件、事件冒泡和事件移除等内容。   ...接上篇jQuery:详解jQuery中的事件(一)   3、合成事件   jQuery有两个合成事件——hover()方法和toggle()方法,同ready()方法一样,这些都是jQuery自定义的方法...再比如,假设网页上有两个元素,一个元素A嵌套在另一个元素B中,并且都被绑定了click事件,同时body元素上也绑定了click事件。...那么在单击子元素A的时候,会依次触发三个click事件;单击元素B的时候,会依次触发两个click事件。   ...5、移除事件:在绑定事件的过程中,不仅可以为同一个元素绑定多个事件,也可以为多个元素绑定同一个事件。在此就不举例说明了。

    3.6K30

    jQuery中不同元素的作用

    删除元素 remove() - 删除被选元素(及其子元素) $("#div1").remove(); empty() - 从被选元素中删除子元素 获取并设置 CSS 类 addClass() - 向被选元素添加一个或多个类...outerWidth() outerHeight() jQuery 遍历 jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML 元素。...以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。 向上遍历 DOM 树 parent() - 返回被选元素的直接父元素。...$(document).ready(function(){ $("span").parents("ul"); }); parentsUntil()- 返回介于两个给定元素之间的所有祖先元素。...向下遍历 DOM 树 children()- 返回被选元素的所有直接子元素。 find()- 返回被选元素的后代元素,一路向下直到最后一个后代。

    3K00

    jquery中动态新增的元素节点无法触发事件解决办法

    在使用jquery中动态新增的元素节点时会发现添加的事件是无法触发的,我们下面就为各位来详细的介绍此问题的解决办法.   ...),想必后面通过ajax加载进来的列表中的回复按钮,点击事件会失效。   ...其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件。...解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法,如下: 方法一:使用live   live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。...通过live()函数适用于匹配选择器的当前及未来的元素。比如,通过脚本动态创建的元素。

    2.7K20

    浏览器 DOM 元素的事件代理指的是什么

    当然,浏览器开发者们早已根据 W3C 事件规范[1]实现好了底层的逻辑,我们只需要通过 Web API 中的 DOM Event[2],通过注册想监听的 DOM 元素和事件的事件监听器(Event Listener...并传入一个事件,其内容包含事件传递过程中必要的数据,例如目标元素、当前元素、传递阶段等等。...规范中定义了时间传递的三个阶段: 捕获阶段:由 DOM Tree 的根节点依次向内传递,过程中触发各别元素的捕获阶段事件监听。...由于事件传递的机制,子元素的事件在传递过程中势必会经过它的父元素;而事件代理,顾名思义就是将子元素事件监听器交由父元素代理。 什么意思呢?...库和框架中的事件处理 在 DOM 事件处理的这部分,jQuery 和 Vue 都将原生的事件监听器做了封装,方便我们快速设定、使用,甚至会自动帮你移除无用的事件监听。

    1.4K30

    使用jQuery.data()查看元素上绑定的事件

    最近遇到一个诡异的问题,发现我添加在一个HTMLElement片段上面的事件绑定,会在后续的流程中,无故丢失了。但是,我不知道它是什么时候丢失的。 所以我需要要一步步逼近定位到问题。...最先想到的是浏览器面板上面的,可以选中元素,看元素上面的事件绑定。 但浏览器上面看到的是结果量,也就是看到的是已经丢失了事件的元素,但我还是不知道什么时候丢失的。...我可以断点取到每个阶段的HTMLElement元素的状态,但是,这个时候,我却找不到观察其事件绑定情况的方法。 谷歌好久,发现JS原生是没法查看事件绑定情况的。...还好,我们都是用的jQuery,用的$.on()。 而jQuery自身事件绑定,额外添加了一层事件数组。...,就会返回这个元素上面绑定的所有事件。

    2.8K00
    领券