本文通过具体的实例来讲述jquery里prop和attr的区别及使用方法。

在jquery里,我们要获取一个标签元素的属性,可以用attr或者prop,那么两者有什么区别呢?

其实很简单:

attr可以用来获取或生成“直接写在html标签里的属性”

prop可以用来获取元素的JS属性,如scrollHeight,offsetHeight等。

我们知道,scrollHeight是js里用来获取元素的完整高度,它是js的属性,并不是jquery属性,如果要在jquery里使用这个属性的话,需要把jquery对象转换成js对象,这样才能使用js的属性,而另一种方法就是用jquery里的prop函数

一个关于滚动条的实例:

<!doctype html>
<html lang="en">
<head>
<title>jquery操作滚动条的在线演示-aijQuery.cn</title>
<script language="JavaScript" src="http://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">
</head>
<body style="height:2000px">
<DIV id="aijquery1" class="container-fluid text-center pt-4" style="height:350px">
这是div#aijquery1<br>
<button id="bt1">滚动到div#aijquery2</button>
</DIV>
<DIV id="aijquery2" class="container-fluid text-center pt-4" style="height:200px;overflow:auto;border:2px solid red">
这是div#aijquery2<br><button id="bt2">滚动到div#aijquery1</button>
<div style="height:450px;border:1px solid #green;padding-top:50px">
这是div#aijquery2内的子DIV<br>
<button id="bt3">操作div#aijquery2的滚动条滚动到底端</button>
</div>
这是div#aijquery2的底部
</DIV>
<script language="javascript">
$("#bt1").click(function(){
//$("html,body").scrollTop($("#aijquery2").offset().top);
$("html,body").animate({scrollTop:$("#aijquery2").offset().top},1000);
});
$("#bt2").click(function(){
//$("html,body").scrollTop($("#aijquery1").offset().top);
$("html,body").animate({scrollTop:$("#aijquery1").offset().top},1000);
});
$("#bt3").click(function(){
//$("#aijquery2").scrollTop($("#aijquery2")[0].scrollHeight);
$("#aijquery2").animate({scrollTop:$("#aijquery2").prop("scrollHeight")},500);
});
</script>
</body>
</html>

  

在上面的实例里,我们要操作滚动条滚动到元素的底部时,就需要取得元素的scrollHiehgt属性的值,我们可以直接用"$(div).prop('scrollHeight')"来获取,但如果换成attr就获取不到了。

如果我们深入jquery的源码来研究,就能发现,jquery里的attr是基于setAttributegetAttribute来实现的,所以用attr是获取不到js对象的属性值的;

而prop是通过对象实现的,如document.getElementById('div').name = 'one';

那么,在实际中,我们除了上面的情况外,我们什么时候用attr,什么时候用prop呢?

在我们要操作的是标签元素固有的一些属性时,推荐使用prop,固有属性指的是标签本身就有的一些属性,如a标签的href属性,img标签的src属性;

而在我们要操作的是自定义的一些属性时,推荐用attr;

jquery里prop和attr的区别的更多相关文章

  1. jQuery的prop和attr的区别,及判断复选框是否选中

    jQuery的prop和attr的区别 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 参数有区别,att ...

  2. jquery中prop和attr的区别

    jquery中prop和attr的区别 prop: prop(name|properties|key,value|fn) **概述** 获取在匹配的元素集中的第一个元素的属性值. 随着一些内置属性的D ...

  3. 第82天:jQuery中prop()和attr()的区别

    在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: ...

  4. jquery中prop()和attr()的区别

    相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties).只是,window或document中使用.attr()方法在 ...

  5. jquery中的prop和attr比较区别

    近期和一同事争执prop和attr的区别,也查了很多,同事说它只是特性和固有属性的区别,但是我也查到了一些其他的,故此,来总结一下吧! 1.固有属性和特别属性 对于HTML元素本身就带有的固有属性,在 ...

  6. jQuery学习之prop和attr的区别示例介绍

    1..prop( propertyName ) 获取匹配集合中第一个元素的Property的值 2. .prop( propertyName, value ) .prop( map ) .prop( ...

  7. jQuery中prop和attr区别

    问题 今天给一个button加onclick事件,由于最后button根据需要转成字符串,因此不能使用jQurey.click(),只能给button添加onclick属性的方式. 于是,$butto ...

  8. jquery中prop,attr,data的区别

    这两天翻了jq的源码,今天看到了jq关于数据存储的几个方法,遂总结一下,和小伙伴没分享一下,哪里说的不对,还望批评指正~~~ 废话不多说,直接上代码: $(function(){ $('#div1') ...

  9. Jquery 获取Checkbox值,prop 和 attr 函数区别

    总结: 版本 1.6 1.6 1.4 1.4 函数 勾选 取消勾选 勾选 取消勾选 attr('checked') checked undefined true false .prop('checke ...

随机推荐

  1. Delphi开发安卓程序的感受

    Delphi XE7开发安卓程序,界面开发速度非常快,这是eclipse无法比的,还有就是界面自适应能力很棒,我在不同版本和尺寸的设备中测试,运行良好,这些设备包括:三星I9100(安卓2.3:不到5 ...

  2. Spark Streaming初步使用以及工作原理详解

    在大数据的各种框架中,hadoop无疑是大数据的主流,但是随着电商企业的发展,hadoop只适用于一些离线数据的处理,无法应对一些实时数据的处理分析,我们需要一些实时计算框架来分析数据.因此出现了很多 ...

  3. phpStorm配置SVN与FTP数据传输

    公司php开发时候,需要搭建环境,自己捋了下思路,公司代码放在SVN服务器上,需要在本机安装TortoiseSVN软件,将代码下载到本机,在本机上调试程序,修改代码,修改的代码再上传到SVN.之后通过 ...

  4. HTML5语义化标签总结

    1.语义化标签总结 基础布局标签 <header></header> <nav></nav> <main></main> < ...

  5. css编写规范最佳实践

    最初,在编写CSS的时候,我们往往想到哪儿就写到哪儿,它们之间的关联性和有序性并不在考虑之中.但随着代码量的增加,亦或是多人共同开发,CSS的编写规范变得重要起来了.本文通过三个方面,总结出CSS编写 ...

  6. 考试题 T1

    题意分析 就是让你求 \[\sum_{i=1}^{|S|}val[i][gcd(a[i],x)=y]\] 那么接下来就是化简式子 \[\sum_{i=1}^{|S|}val[i][gcd(\frac{ ...

  7. 4.1.1 Choosing the SST Donor

    摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该 ...

  8. Asp.net的生命周期应用之IHttpHandler

    摘自:http://www.cnblogs.com/JimmyZhang/archive/2007/09/15/894124.html Framework提供了一系列的接口和类,允许你对于Http请求 ...

  9. 架构师养成记--37.简单shell编程

    一.HelloWord.sh echo 表示打印,可以在sh文件中写诸如pwd.ls 这样的命令,使用命令的时候尽量使用全路径. #!/bin/sh #this is my first sh echo ...

  10. 2016级算法期末上机-A.简单·Bamboo's Fight with DDLs I

    简单·Bamboo's Fight with DDLs I 分析 一句话:要装满的完全背包问题. 对比完全背包只有一点要改变:初始化为负无穷 传送门: https://buaacoding.cn/pr ...