jQuery中prop方法和attr方法区别

attr方法用的是原生js中的getAttribute和setAttribute;

prop方法相当于直接用.或者[]来访问/修改dom元素的属性,

所以它俩的区别相当于问原生js中的getAttribute和直接.来修改属性有什么区别:

<input type="text" zs="user">

1.在html中能看到的属性一定会在dom的属性节点中保存,本文称它为节点属性, 这些属性分为html自带的属性(如type),和自定义属性(如zs).

元素还有很多属性是html中看不到的, 如offsetLeft, clientTop等,它们保存在元素对象中,是普通属性,不是节点属性.

普通属性节点属性独立的,可以同名而不冲突.

1.1. 直接.或者[]只能获取元素的普通属性;

1.2.  getAttribute方法只能获取节点属性.

2.如果不在html写好属性, 而用js设置属性, 也有两种方式: 直接.设置和使用setAttribute方法:

2.1.用.或[]设置

2.1.1 对于html中标签本身自带的属性(如img标签的src属性, a标签的href属性等),会设置成节点属性,在html中看得见.

但如果不是html中标签自带的,而是自定义属性, 则这些属性会成为普通属性, 在html中看不见,但我们一般不希望这样.

2.2.  用setAttribute设置

2.2.1 无论是不是html自带的属性, 都会被设置成节点属性,在html中看得见.

对于html自带的布尔属性,如checked, disabled等, 直接.或[]才能得到true/false真实的布尔值, 用jQuery的prop方法也是一样;

但是attr方法不能正常得到布尔属性的布尔值,它返回的是属性名,也就是attr("checked") = "checked", 所以操作布尔属性要用prop方法;

总结: 一般来说,我们自定义的属性希望能在html中也能看得见, 所以对于非html自带的属性, 用attr方法操作;

对于html自带的属性,尤其是布尔属性, 要用prop方法操作.

原文地址:https://www.cnblogs.com/jx-z/p/12602667.html

时间: 2024-08-03 07:20:37

jQuery中prop方法和attr方法区别的相关文章

jquery中prop()方法和attr()方法的区别

jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值. 大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是un

jquery中prop()方法和attr()方法的区别浅析

jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值. 大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是un

jQuery中prop()方法和attr()方法可能遇到的问题小结

<html> <head> <title>放置文章标题</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> //这里是网页编码现在是gb2312 <meta name="keywords" content="关键字" /> <meta name=

jQuery中bind方法和live方法区别解析

Javascript中的事件有它的独特性,有默认的执行事件,例如冒泡就是其中的一个.在很多比较复杂的应用程序中,停止事件的冒泡或捕获在程序开发当中是十分有用的,而在IE中有它的独特方式来阻止事件的冒泡(和其它浏览器方式不同). 以下给出一种通用的方式来实现阻止事件的冒泡,该通用方式接受一个参数[传递到事件处理程序中的事件对象],该函数处理取消事件冒泡的两种方式:标准的W3C方式和非标准的IE方式: 什么是事件冒泡[又称为事件传播]:当我们点击一个元素时,它会触发bind在该元素上的click事件

prop()方法和attr()方法的区别

prop()方法和attr()方法的区别:关于这两个方法的具体用法这里就不多介绍了,可以参阅prop()和attr()方法相关手册即可.这两个方法作用好像是一模一样,其实绝大多数作用都是一样,只有在一些特殊的情况下才有可能出现一些差异,下面就结合实例实例介绍一下在这两个方法的区别.先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name=&q

prop()方法和attr()方法以及区别

prop()方法:定义和用法prop() 方法设置或返回被选元素的属性和值.当该方法用于返回属性值时,则返回第一个匹配元素的值.当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对.注意:prop() 方法应该用于检索属性值,例如 DOM 属性(如 selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected).提示:如需检索 HTML 属性,请使用 attr

Javascript中call方法和apply方法用法和区别

第一次在博客园上面写博客,知识因为看书的时候发现了一些有意思的知识,顺便查了一下资料,就发到博客上来了,希望对大家有点帮助. 连续几天阅读<javascript高级程序设计>这本书了,逐渐发现了以前很多自己完全没有用过甚至见过的神奇知识点.今天在阅读到有关函数的属性和方法的时候,略感高级,于是乎,查阅了不少他人的博客,在此总结一下这两个方法的以下几个方面: 1.call()和apply()的作用和用法 2.什么时候用apply(),什么时候用call() 书上提到,每个函数都包含两个非继承而来

线程中sleep方法和wait方法有什么区别?(转)

线程中sleep方法和wait方法有什么区别? 如果你没有接触过java的多线程,那么多对于这两个方法可能有点陌生,看名字好像这两个方法是差不多的,但是实际上面差别好大. 首先我们看一下官方的API Sleep(sleep有两个方法,另一个方法传递两个参数,还有一个参数也是时间,只不过是纳秒级别的,所以和这个方法几乎一样,所以这里只分析这个毫秒级别的方法) public static void sleep(long millis) throws InterruptedException 首先是个

java中paint方法和paintComponent方法的不同

/* 1.由Component.java源代码中可以看见其中的paint()方法体是空的,在Container中重写了该方法,其子类Window等也重写了该方法 2.由JComponent.java源代码中可以看见其中的paint()方法中调用paintComponent, paintChildren, paintBorder等方法: 所以该类中的paint方法会影响子组件的绘制, 而paintComponent方法只会影响该组件本身 3.paint方法 和 paintComponent方法都是