jQuery 中 attr 和attr prop 区别方法的区别

jQuery中attr和prop在修改checked属性时的区别_百度知道
jQuery中attr和prop在修改checked属性时的区别
提问者采纳
没有太大区别。一般情况下具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()。以下来自网络,有兴趣可阅读:jQuery&1.6&开始新增了一个方法&prop()。从中文意思看,两者分别是获取/设置&attributes&和&properties&的方法,那么为什么还要增加&prop()&方法呢?Before&jQuery&1.6,&the&.attr()&method&sometimes&took&property&values&into&account&when&retrieving&some&attributes,&which&could&cause&inconsistent&behavior.因为在&jQuery&1.6&之前,使用&attr()&有时候会出现不一致的行为。那么,什么时候使用attr(),什么时候使用prop()?To&retrieve&and&change&DOM&properties&such&as&the&checked,&selected,&or&disabled&state&of&form&elements,&use&the&.prop()&method.&根据官方的建议:具有&true&和&false&两个属性的属性,如&checked,&selected&或者&disabled&使用prop(),其他的使用&attr()到此,将&attr('checked')&改成&prop('checked')&即可修复提的&issues&了。^_^等等,貌似问题还没真正解决,为什么开头例子中&jQuery&1.8.3&和&1.9.0&使用&attr()&会有所区别呢?想知道他们的区别,最好的办法还是看他们的源代码:1.8.3&attr():attr:&function(&elem,&name,&value,&pass&)&{&&&&var&ret,&hooks,&notxml,&&&&&&&&nType&=&elem.nodeT&&&&//&don't&get/set&attributes&on&text,&comment&and&attribute&nodes&&&&if&(&!elem&||&nType&===&3&||&nType&===&8&||&nType&===&2&)&{&&&&&&&&&&&&}&&&&if&(&pass&&&&jQuery.isFunction(&jQuery.fn[&name&]&)&)&{&&&&&&&&return&jQuery(&elem&)[&name&](&value&);&&&&}&&&&//&Fallback&to&prop&when&attributes&are&not&supported&&&&if&(&typeof&elem.getAttribute&===&&undefined&&)&{&&&&&&&&return&jQuery.prop(&elem,&name,&value&);&&&&}&&&&notxml&=&nType&!==&1&||&!jQuery.isXMLDoc(&elem&);&&&&//&All&attributes&are&lowercase&&&&//&Grab&necessary&hook&if&one&is&defined&&&&if&(&notxml&)&{&&&&&&&&name&=&name.toLowerCase();&&&&&&&&hooks&=&jQuery.attrHooks[&name&]&||&(&rboolean.test(&name&)&?&boolHook&:&nodeHook&);&&&&}&&&&if&(&value&!==&undefined&)&{&&&&&&&&if&(&value&===&null&)&{&&&&&&&&&&&&jQuery.removeAttr(&elem,&name&);&&&&&&&&&&&&&&&&&&&&}&else&if&(&hooks&&&&&set&&in&hooks&&&&notxml&&&&(ret&=&hooks.set(&elem,&value,&name&))&!==&undefined&)&{&&&&&&&&&&&&return&&&&&&&&&}&else&{&&&&&&&&&&&&elem.setAttribute(&name,&value&+&&&&);&&&&&&&&&&&&return&&&&&&&&&}&&&&}&else&if&(&hooks&&&&&get&&in&hooks&&&&notxml&&&&(ret&=&hooks.get(&elem,&name&))&!==&null&)&{&&&&&&&&return&&&&&}&else&{&&&&&&&&ret&=&elem.getAttribute(&name&);&&&&&&&&//&Non-existent&attributes&return&null,&we&normalize&to&undefined&&&&&&&&return&ret&===&null&?&&&&&&&&&&&&undefined&:&&&&&&&&&&&&&&&&}}1.9.0&attr():&&&attr:&function(&elem,&name,&value&)&{&&&&var&ret,&hooks,&notxml,&&&&&&&&nType&=&elem.nodeT&&&&//&don't&get/set&attributes&on&text,&comment&and&attribute&nodes&&&&if&(&!elem&||&nType&===&3&||&nType&===&8&||&nType&===&2&)&{&&&&&&&&&&&&}&&&&//&Fallback&to&prop&when&attributes&are&not&supported&&&&if&(&typeof&elem.getAttribute&===&&undefined&&)&{&&&&&&&&return&jQuery.prop(&elem,&name,&value&);&&&&}&&&&notxml&=&nType&!==&1&||&!jQuery.isXMLDoc(&elem&);&&&&//&All&attributes&are&lowercase&&&&//&Grab&necessary&hook&if&one&is&defined&&&&if&(&notxml&)&{&&&&&&&&name&=&name.toLowerCase();&&&&&&&&hooks&=&jQuery.attrHooks[&name&]&||&(&rboolean.test(&name&)&?&boolHook&:&nodeHook&);&&&&}&&&&if&(&value&!==&undefined&)&{&&&&&&&&if&(&value&===&null&)&{&&&&&&&&&&&&jQuery.removeAttr(&elem,&name&);&&&&&&&&}&else&if&(&hooks&&&&notxml&&&&&set&&in&hooks&&&&(ret&=&hooks.set(&elem,&value,&name&))&!==&undefined&)&{&&&&&&&&&&&&return&&&&&&&&&}&else&{&&&&&&&&&&&&elem.setAttribute(&name,&value&+&&&&);&&&&&&&&&&&&return&&&&&&&&&}&&&&}&else&if&(&hooks&&&&notxml&&&&&get&&in&hooks&&&&(ret&=&hooks.get(&elem,&name&))&!==&null&)&{&&&&&&&&return&&&&&}&else&{&&&&&&&&//&In&IE9+,&Flash&objects&don't&have&.getAttribute&(#12945)&&&&&&&&//&Support:&IE9+&&&&&&&&if&(&typeof&elem.getAttribute&!==&&undefined&&)&{&&&&&&&&&&&&ret&=&&elem.getAttribute(&name&);&&&&&&&&}&&&&&&&&//&Non-existent&attributes&return&null,&we&normalize&to&undefined&&&&&&&&return&ret&==&null&?&&&&&&&&&&&&undefined&:&&&&&&&&&&&&&&&&}}1.8.3&和&1.9.0&的&prop()&是一样的:prop:&function(&elem,&name,&value&)&{&&&&var&ret,&hooks,&notxml,&&&&&&&&nType&=&elem.nodeT&&&&//&don't&get/set&properties&on&text,&comment&and&attribute&nodes&&&&if&(&!elem&||&nType&===&3&||&nType&===&8&||&nType&===&2&)&{&&&&&&&&&&&&}&&&&notxml&=&nType&!==&1&||&!jQuery.isXMLDoc(&elem&);&&&&if&(&notxml&)&{&&&&&&&&//&Fix&name&and&attach&hooks&&&&&&&&name&=&jQuery.propFix[&name&]&||&&&&&&&&&hooks&=&jQuery.propHooks[&name&];&&&&}&&&&if&(&value&!==&undefined&)&{&&&&&&&&if&(&hooks&&&&&set&&in&hooks&&&&(ret&=&hooks.set(&elem,&value,&name&))&!==&undefined&)&{&&&&&&&&&&&&return&&&&&&&&&}&else&{&&&&&&&&&&&&return&(&elem[&name&]&=&value&);&&&&&&&&}&&&&}&else&{&&&&&&&&if&(&hooks&&&&&get&&in&hooks&&&&(ret&=&hooks.get(&elem,&name&))&!==&null&)&{&&&&&&&&&&&&return&&&&&&&&&}&else&{&&&&&&&&&&&&return&elem[&name&];&&&&&&&&}&&&&}}首先,我们看下&attr()&和&prop()&的区别:attr()&里面,最关键的两行代码elem.setAttribute(&name,&value&+&&&&);&ret&=&&elem.getAttribute(&name&);很明显的看出来,使用的&DOM&的&API&setAttribute()&和&getAttribute()&方法操作的属性元素节点。prop()&里面,最关键的两行代码return&(&elem[&name&]&=&value&);return&elem[&name&];可以理解为&document.getElementById(el)[name]&=&value,这是转化成&element&的一个属性。对比调试&1.9.0&和&1.8.3&的&attr()&方法,发现两者的区别在于hooks.get(&elem,&name&))&返回的值不一样,具体的实现:1.8.3&中boolHook&=&{&&&&get:&function(&elem,&name&)&{&&&&&&&&//&Align&boolean&attributes&with&corresponding&properties&&&&&&&&//&Fall&back&to&attribute&presence&where&some&booleans&are&not&supported&&&&&&&&var&attrNode,&&&&&&&&&&&&property&=&jQuery.prop(&elem,&name&);&&&&&&&&return&property&===&true&||&typeof&property&!==&&boolean&&&&&(&attrNode&=&elem.getAttributeNode(name)&)&&&&attrNode.nodeValue&!==&false&?&&&&&&&&&&&&name.toLowerCase()&:&&&&&&&&&&&&&&&&}}1.9.0&中boolHook&=&{&&&&get:&function(&elem,&name&)&{&&&&&&&&var&&&&&&&&&&&&//&Use&.prop&to&determine&if&this&attribute&is&understood&as&boolean&&&&&&&&&&&&prop&=&jQuery.prop(&elem,&name&),&&&&&&&&&&&&//&Fetch&it&accordingly&&&&&&&&&&&&attr&=&typeof&prop&===&&boolean&&&&&elem.getAttribute(&name&),&&&&&&&&&&&&detail&=&typeof&prop&===&&boolean&&?&&&&&&&&&&&&&&&&getSetInput&&&&getSetAttribute&?&&&&&&&&&&&&&&&&&&&&attr&!=&null&:&&&&&&&&&&&&&&&&&&&&//&oldIE&fabricates&an&empty&string&for&missing&boolean&attributes&&&&&&&&&&&&&&&&&&&&//&and&conflates&checked/selected&into&attroperties&&&&n哗尝糕妒蕹德革泉宫沪&&&&&&&&&&&&&&&&ruseDefault.test(&name&)&?&&&&&&&&&&&&&&&&&&&&&&&&elem[&jQuery.camelCase(&&default-&&+&name&)&]&:&&&&&&&&&&&&&&&&&&&&&&&&!!attr&:&&&&&&&&&&&&&&&&//&fetch&an&attribute&node&for&properties&not&recognized&as&boolean&&&&&&&&&&&&&&&&elem.getAttributeNode(&name&);&&&&&&&&return&detail&&&&detail.value&!==&false&?&&&&&&&&&&&&name.toLowerCase()&:&&&&&&&&&&&&&&&&}}由此可见,1.9.0&开始不建议使用&attr()&来对具有&true&和&false&两个属性的属性进行操作了。那么我们的结论是:具有&true&和&false&两个属性的属性,如&checked,&selected&或者&disabled&使用prop(),其他的使用&attr(),具体见下表:
其他类似问题
为您推荐:
jquery的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前位置:&&
jquery如何设置与去除disabled属性?五种方法
&&&&来源:&互联网& 发布时间:
继续为大家分享jquery设置与去除disabled属性的方法。
//两种方法设置disabled属性
$('#areaSelect').attr("disabled",true);
$('#areaSelect').attr("disabled","disabled");
//三种方法移除disabled属性
$('#areaSelect').attr("disabled",false);
$('#areaSelect').removeAttr("disabled");
$('#areaSelect').attr("disabled","");
jquery的checked与disabled操作方法。
在jquery中checked与disabled属性的操作方法基本相同。
&input id="cb1" type="checkbox" checked /&
&input id="cb2" type="checkbox" checked="checked" /&
jquery判断checked的三种方法:
.attr('checked'):
//看版本1.6+返回:"checked"或"undefined" ;1.5-返回:true或false
.prop('checked'): //16+:true/false
.is(':checked'):
//所有版本:true/false//别忘记冒号哦
jquery赋值checked的几种写法:
所有的jquery版本都可以这样赋值:
// $("#cb1").attr("checked","checked");
// $("#cb1").attr("checked",true);
jquery1.6+:prop的4种赋值:
// $("#cb1").prop("checked",true);//很简单就不说了哦
// $("#cb1").prop({checked:true}); //map键值对
// $("#cb1").prop("checked",function(){
//函数返回true或false
//记得还有这种哦:$("#cb1").prop("checked","checked");
参考:/prop/
jquery1.6以后才支持prop。
测试实例:
&title&测试-jquery操作元素的disabled属性-www.&/title&
&style type="text/css"&
&!--1.62可以修改1.42
1.7来测试--&
&script type="text/javascript" src="/ajax/libs/jquery/1.6.2/jquery.min.js"&&/script&
&script type="text/javascript"&
$(function(){
//判断checked
//var a=$("#cb1").attr('checked'); //看版本1.6+返回:"checked"或"undefined" ;1.5-返回:true或false
//var b=$("#cb1").prop('checked'); //1.6+:true/false
var c=$("#cb1").is(':checked');
//所有版本:true/false
//alert(a);
//alert(b);
前两个所有的jquery版本都支持 prop只有jquery1.6+支持
//$("#cb1").attr("checked","checked");//1.5-
//$("#cb1").attr("checked",true);//1.5-
//$("#cb1").prop("checked","checked");//1.6+(整理的时候把这个忘记啦)
//$("#cb1").prop("checked",true);//1.6+
//$("#cb1").prop({checked:true});//1.6+
//$("#cb1").prop("checked",function(){
&!--赋值的时候记得去掉checked--&
&input id="cb1" type="checkbox" checked /&
&input id="cb2" type="checkbox" checked="checked"/&
您可能感兴趣的文章:
readonly与disabled有什么区别
JQuery设置input属性(disabled、enabled)
jquery设置元素readonly和disabled(checkbox只读)
使用disabled与readonly将input设置为只读
jquery设置元素readonly与disabled属性
jquery设置元素的readonly和disabled属性
有关disabled、display、visible的区别
相关技术文章: &&&&
在jquery中,可以采用三种的变通方法将置为disabled的元素状态改为enabled。
方法1,改变disabled的boolean状态
$("button:eq(2)").click(function(){
var text2=$("input:text:eq(2)");
if(text2.attr("disabled")==false){
//通过设置disabled的boolean属性将第三个text输入框disabled属性置为true
text2.attr("disabled",true);
//通过将第三个text输入框disabled属性置为false来移除disabled属性
text2.attr("disabled",false);
方法2,移除disabled属性
$("button:eq(1)").click(function(){
var text2=$("input:text:eq(1)");
if(text2.attr("disabled")==fals...... &&&&
例子,jquery调用新浪天气预报接口,获取全国各个省市区的天气预报。
function GetWeather(a) {
var date=new Date();
var cDate=date.getFullYear() "-" (date.getMonth() 2) "-" date.getDate();
$("#wPlace").text(a.value);
$.getScript("http://php..cn/js.php?"
city: a.value,
day:cDate,
password: "DJOYnieT8234jlsK"
}), function(json) {//数据返回
$("#weather").text(status1 " " direction1);
$("#wd").text(tem...... &&&&
例子,jquery获取ip地址。
&script language="javascript" src="jquery1.3.2.js"&&/script&
&script language="javascript"&
jQuery(function($){
var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_='+Math.random();
$.getJSON(url, function(data){
alert(data.Ip);
您可能感兴趣的文章:
js获取客户端ip地址并检测合法性与归属地
node.js获取本机内网与外网ip......&nbsp最新技术文章: &&&&
如何用jquery 限制文本框只能输入数字呢?
先来看一个简单的例子:
$("input[name='fangwenyudinhuishu']").keyup(function(){
var tmptxt=$(this).val();
$(this).val(tmptxt.replace(/\D|^0/g,''));
}).bind("paste",function(){
var tmptxt=$(this).val();
$(this).val(tmptxt.replace(/\D|^0/g,''));
}).css("ime-mode", "disabled");
以上是keyup事件处理,接着处理了CTR+V事件,最后是css设置输入法不可用。
例子,用jquery限制文本框只能输入数字:(...... &&&&
例子,显示与隐藏div。
$("#top_notice").css("display", "block");//第1种方法
//$("#top_notice").attr("style", "display:");//第2种方法
//$("#top_notice").show();//第3种方法
以下是一些显示与隐藏div,给元素设置style属性的方法。
1,给元素换class,来实现隐藏div,前提是换的class样式定义好了隐藏属性
$("#sendPhoneNum").attr("class", "n_input3");
2,给元素设置style属性
$("#top_notice").attr("style", "display:");
3,通过jquery的css方法,设置div隐藏
$("#sendPhoneNum").c...... &&&&
例子,jquery获得div的id。
&div id="product_shift_out_{m}"& &/div&
&script language = "JavaScript" type="text/javascript"&
$(document).ready(function(){
name = $('div').eq(0).attr('id');
alert(name)
eq(0)是取第一个jq元素。
匹配一个给定索引值的元素
--------------
Matches a single element by its index.
index (Number) : 从 0 开始计数
例子,查找第二行。
&tr&&td&Header 1&/td&&/tr&
&tr&&td&Va......&nbsp
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)【老生常谈】Attr与Prop的区别
来源:博客园
“你为什么要做一个程序员?”,“因为我有一颗改变世界的心!”,“说人话”,“因为我没朋友。。。” -------------纯属娱乐 ===================================================================== 前几天写的工具模型,今儿又提了一个bug:复选框显示有误,将一个弹出框的选中状态删除,其余弹出框弹出的时候,本应被选中的状态也不见了。。。 确认了一下后台收到的数据都是正常的,那么就是前端显示问题了~到也没怎么纠结,因为之前有因为类似问题的bug,当时查询了一下问题原因及解决方案。 原因:attr设置属性的非即时生效特性 解决:用prop替换attr即可 那么,二者到底该如何使用呢? 简单的说就是:表单的checked,disabled,selected这几种可以用true和false来表达并且需要设置成功后立即显示结果的,就使用prop;其余的都可以使用attr。
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动jQuery中prop()方法和attr()方法的区别浅析 - 博客频道 - CSDN.NET
一个人的消失,孤独了整个世界。
分类:JavaScriptjQuery
&&& 之前在利用jQuery获取checkbox和radio是否被选中的的时候attr()方法坑了好几次,有时候能获取到值有时候就获取不到(undefined),也怪不得别人,自己学艺不精。其实,获取是否被选中的方法最好的还是利用原生的js直接获取,不过既然遇到了这个问题也就有必要学习一下了。
&&& jQuery1.6中新加了一个方法prop(),property(属性)的前四个字母,之前一直没用过(也不知道,见识短浅了)。之前只知道只要checkbox选中,则利用attr()方法就可以获取到checked的值(e.attr('checked')),选中时为“checked”,但未选中时就是undefined(好像不太喜欢这个)。
jQuery提供了prop()方法来获取这种属性,使用prop()方法可以统一返回true或false。
&&& 总结一下,什么时候应该用attr(),什么时候应该用prop()呢?
&&& 以下是官方建议:
Attribute/Property
contenteditable
自己总结就是:
1.添加什么属性名该属性就会生效用prop();
2.是true,false两个属性值的使用prop();
3.其他的就是用attr()吧。
排名:第19160名
专注:算法、编程
&&&&本人作为初学者,本博客也是作为笔记方便以后查找,如果哪里有错误还请各位高手指正!不胜感激!
(116)(24)(2)(7)(1)(1)(4)(3)(2)(2)(2)(0)(0)(1)(1)1、.prop( propertyName )
获取匹配集合中第一个元素的Property的值
.prop( propertyName, value )
.prop( map )
.prop( propertyName, function(index, oldPropertyValue) )
给匹配元素集合设定一个或多个属性
.prop()和 .attr()区别
下面是关于jQuery1.6和1.6.1中Attributes模块变化的描述,以及.attr()方法和.prop()方法的首选使用
Attributes模块的变化是移除了attributes和properties之间模棱两可的东西,但是在jQuery社区中引起了一些混乱,因为在1.6之前的所有版本中都使用一个方法(.attr())来处理attributes和properties。但是老的.attr()方法有一些bug,很难维护。jQuery1.6.1对Attributes模块进行了更新,并且修复了几个bug。
elem.checked true (Boolean) Will change with checkbox state
$(elem).prop(&checked&) true (Boolean) Will change with checkbox state
elem.getAttribute(&checked&) &checked& (String) Initial s does not change
$(elem).attr(&checked&)(1.6) &checked& (String) Initial s does not change
$(elem).attr(&checked&)(1.6.1+) &checked& (String) Will change with checkbox state
$(elem).attr(&checked&)(pre-1.6) true (Boolean) Changed with checkbox state
if ( elem.checked )
if ( $(elem).prop(&checked&) )
if ( $(elem).is(&:checked&) )
这三个都是返回Boolean值。
为了让jQuery1.6中的.attr()方法的变化被理解的清楚些,下面是一些使用.attr()的例子,虽然在jQuery之前的版本中能正常工作,但是现在必须使用.prop()方法代替:
首先,window或document中使用.attr()方法在jQuery1.6中不能正常运行,因为window和document中不能有attributes。它们包含properties(比如:location或readyState),必须使用.prop()方法操作或简单地使用javascript原生的方法。在jQuery1.6.1中,window和document中使用.attr()将被自动转成使用.prop,而不是抛出一个错误。
其次,checked,selected和前面提到的其它boolean attributes,因为这些attributes和其相应的properties之间的特殊关系而被特殊对待。基本上,一个attribute就是以下html中你看到的:
&input type=”checkbox” checked=”checked”&
boolean attributes,比如:checked,仅被设置成默认值或初始值。在一个checkbox的元素中,checked attributes在页面加载的时候就被设置,而不管checkbox元素是否被选中。
properties就是浏览器用来记录当前值的东西。正常情况下,properties反映它们相应的attributes(如果存在的话)。但这并不是boolean attriubutes的情况。当用户点击一个checkbox元素或选中一个select元素的一个option时,boolean properties保持最新。但相应的boolean attributes是不一样的,正如上面所述,它们仅被浏览器用来保存初始值。
$(“:checkbox”).get(0).checked =
// Is the same as $(&:checkbox:first&).prop(“checked”, true);
在jQuery1.6中,如果使用下面的方法设置checked:
$(“:checkbox”).attr(“checked”, true);
将不会检查checkbox元素,因为它是需要被设置的property,但是你所有的设置都是初始值。
然而,曾经jQuery1.6被释放出来的时候,jQuery团队明白当浏览器仅关心页面加载时,设置一些值不是特别的有用。所以,为了保持向后兼容性和.attr()方法的有用性,我们可以继续在jQuery1.6.1中使用.attr()方法取得和设置这些boolean attributes。
最普通的attributes是checked,selected,disabled和readOnly,但下面是jQuery1.6.1支持的使用.attr()动态地取得和设置boolean attributes/properties的完整列表:
autofocus, autoplay, async, checked, controls, defer, disabled,
hidden, loop, multiple, open, readonly, required, scoped, selected
还是建议使用.prop()方法来设置这些boolean attributes/properties,即使这些用例没有转换成使用.prop()方法,但是你的代码仍然可以在jQuery1.6.1中正常运行。
下面是一些attributes和properties的列表,正常情况下,应该使用其对应的方法(见下面的列表)来取得和设置它们。下面的是首用法,但是.attr()方法可以运行在所有的attributes情况下。
注意:一些DOM元素的properties也被列在下面,但是仅运行在新的.prop()方法中
*例如: window.location
**如果需要在(if needed over) .width()
.attr()和.prop()都不应该被用来取值/设值。使用.val()方法代替(即使使用.attr(&value&,&somevalue&) 可以继续运行,就像1.6之前做的那样)
3、首选用法的概述
.prop()方法应该被用来处理boolean attributes/properties以及在html(比如:window.location)中不存在的properties。其他所有的attributes(在html中你看到的那些)可以而且应该继续使用.attr()方法来进行操作。
上面的概述已经描述的够清楚了,我也没有必要再总结了。
参考文献:
/blog/1046334
相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties)。只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes。prop应运而生了。 既然我们想知道他们两的区别,最好就看看他们的源代码,不要被代码长度所吓到,我们
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。 关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:
o 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
o 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。 上面的描述也许有点模糊,举几个例子就知道了。&
Prop和attr的作用类似
相同点:两者都可以获取属性值和设置属性值 不同点:在处理checkbox上,建议使用prop,原因在于IE浏览器不兼容,因为是相似的所有个人建议使用prop 删除属性的时候使用:removeProp(&xxx&) 例子: 获取属性值
var currentChecked=$(&.my-checked&).
jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值。 大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = &disabled&,checked=&checked&,比如用attr(&checked&)获取checkbo
attribute与property attribute和property都可以翻译为属性,为了以示区别,通常把这两个单词翻译为属性与特性。 &div id=&test&&Click Here&/div& 上面这段HTML语句中有三个节点,分别是Element “div”、attribute “id”、Text “click here”,我们最常见的at
在做复选框全选按钮的时候,出现了一个问题,使用语句$.attr('checked',true),将复选框的属性改为被选中,在chrome浏览器中第一次点击有效后面就不行了,IE8倒是没有问题。 百度了很久找到原因是HTML的属性分为attribute和property,暂且将后者称为特性。 checked属性即分为attribute-&checked,和property-&true,f
$(&form&).attr(&check&); $(&form&).prop(&check&); 两种都可以,不过新版jquery推荐第二种,两个在其他方面都差不多,我发现的唯一不同就是在checkbox上的时候,需要用prop,不然IE浏览器会不兼容
&html xmlns=&h
话说写了几句代码在ie8上能正常运行,chrome和ff却不行,朋友说这就是RP啊,郁闷!
其实功能需求是这样的,两个radio:男和女,一个button:重置。启动页面默认选中男,在用户选择女之后又点击重置按钮,需要恢复到默认状态。
&input type=&radio& id=&hRdMale& checked=&
1. attr(属性名) //获取属性的值(取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回 undefined )
2. attr(属性名, 属性值) //设置属性的值 (为所有匹配的元素设置一个属性值。)
3. attr(属性名,函数值) //设置属性的函数值 (为所有匹配的元素设置一个计算的属性值。不提供值,而是提供一个函
今天学习jQuery的选择器:
jQuery选择器分为基本选择器、层次选择器、过滤选择器、表单选择器。
基本选择器:id,class,标签名,*,元素组合(div,span,p.myClass)
层次选择器:
难点: jquery中子元素和后代元素的区别 后代,就是当前元素的所有后代,都算, 子元素,就是当前元素的子集,再往下走就不算了。
具体的分析可以参考:
问题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别:
1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase
&input type=&checkbox& id=&sel
trigger 和triggerHandler都是模拟事件发生的 用具体的案例来描述一下区别
&html lang=&en&& &head& &meta charset=&utf-8&& &title&test&/title& &script src=&http
今天主要和大家一起分享一下如何使用jQuery的.attr()和.removeAttr()方法读取,添加,修改,删除元素的属性。大家在平时的Web页面制作中都有碰到如何动态的获取元素的属性和属性值,或者说动态的修改元素的某个(某些)属性的属性值。那么jQuery就可以让我们轻松的读取,添加,更改或删除一个(或多个)元素中的任何属性,在jQuery中我们可以使用下面的方法来实现:
在使用$(&#id&).attr(&color&) 获取颜色的时候,ie和ff是不同的。举个简单的例子:
&font id=&id& color=&green&&
使用$(&#id&).attr(&color&) 在ff,chrome中获取到
display通常可以设置为none、inline、block
visibility通常可以设置为hidden、visible
当display为none,visibility为hidden时,元素都会不见。不过其还有不同之处。
display会将元素隐藏掉,并且位置不再被占据,而visibility则是占据原来的位置。
看例子即可明白:
&div id=&qu
在jquery 1.8.x中的版本,我们对于checkbox的选中与不选中操作如下: 判断是否选中
$('#checkbox').prop('checked')
设置选中与不选中状态:
$('#checkbox').attr('checked',true) $('#checkbox').attr('checked',false)
但此方法在j
1. setInterval() 用法_学习
//每隔一秒自动执行方法 var c=0; function showLogin() { alert(c++); } //setInterval方法或字符串 ,毫秒,参数数组(方法的)) setInterval(&showLogin()&,&1000&);
2.setTimeout
第一步,/jQuery_getting_started.html 第二步,新手先仔细得全部看一遍jQuery的选择器,很重要!!! (/jqueryapi/ 这里是最新文档,有离线版下载) 第三步,深刻了解jQuery对象和普通DOM对象的区别。互相转化见Q1 Q1,js的写法:document.getElementById
下面我们来具体看一下attr的用法: 一、attr(name):取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回 undefined 。其中name为string.下面我用一个img元素演示一下这种用法:
//html文件中 &img src=&a.gif& /& //我们可以用
document.location.href和document.location.replace都可以实现从A页面切换到B页面,但他们的区别是:
用document.location.href切换后,可以退回到原页面。
而用document.location.replace切换后,不可以通过“后退”退回到原页面。
关于document.location.href或其他可回退的切换方式,我还发
经研究发现,两者之间有很大的区别,不知从英语讲,这两者都有啥区别,研究结果如下 测试os:ubuntu 测试浏览器:chrome
测试案例1 console.log(a) 报错 ReferenceError: a is not defined
测试案例2 var a console.log(a) 无报错,但是输出undefined
测试案例2 var b = {}; console.log(
ready,是在DOM加载完成就触发。Jquery中
$(document).ready(function(){}) ; //或者 $().ready(function(){}); //或者 $(function(){}):
load,是在加载完所有页面内容才会触发,所有内容包括图片,flash等.如果页面的这些内容很多会让用户等待很长时间.
1.HTML html():取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档 html(val):设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。 2.TEXT text():取得所有匹配元素的内容。 结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对HTML和XML文档都有效。 text(val):设置所有匹
ASP.NET 的服务器控件回发是使用这一段JS代码:
var theForm = document.forms['form1']; if (!theForm) { theForm = document.form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (
先说说undefined: Javascript中的变量是弱类型的, 所以声明变量的时候只需使用var关键字即可。如果是像C这样的强类型语言, 声明变量的时候如果没有指定初始值,那么会给他一个默认值,比如int变量的默认值是0。但是在Javascript这样的弱类型语言中,没有办法确定到底该给这样的变量一个什么样的默认值,比如我声明一个变量 var v1; 是给他false还是0,或者是'' ?
parent & child
概述 在给定的父元素下匹配所有的子元素
参数 parentSelector任何有效选择器 childSelector用以匹配元素的选择器,并且它是第一个选择器的子元素
示例 描述: 匹配表单中所有的子级input元素。
HTML 代码:
&form& &label&Name:&/label&
Jquery中绑定事件有三种方法:以click事件为例
(1)target.click(function(){});
(2)target.bind(&click&,function(){});
(3)target.live(&click&,function(){});
第一种方法很好理解,其实就和普通JS的用法差不多,只是少了一个on而已
$.each() 与 $().each之间的区别,$.each是一个通用的迭代函数,可用于近似地迭代 对象和数组,这个函数与$().each是专用用于迭代和执行jquery对象函数。而这个函数可以用于迭代任何对象,这个函数的回调中包含两个参数:第一个是key(对象)或index(数组),第二个是值 .
&script type=&text/javasctip&
本文实例分析了jQuery中parents()和parent()的区别,分享给大家供大家参考。具体分析如下: 其实在jQuery中,函数或者选择器的概念都是很容易理解的,只要对API手册有足够的熟练就能够很容易分辨,标题中的函数其实也是如此,不过咱们这里还是做一些简单的介绍,毕竟这样可能更为方便一些。 一.parents()函数: 此函数能够获取匹配元素的所有父元素,代码示例:
function GetCurrentStyle (obj, prop) { if (obj.currentStyle) { return obj.currentStyle[prop]; } else if (window.getComputedStyle) { prop = prop.replace (/([A-Z])/g, &-$1&); prop = prop.toLow
做项目的时候,我从后台传递过来的数据给一个文本框赋值,通过google浏览器, 当修改的时候发现没有修改,最后查了下原因,原来是jQuery中val和atrr(&value&,对浏览器的区别, 故总结如下: jquery中的val()和atrr('value'这两个的使用,假设有默认值的情况下,如果用val()赋值了,那么当修改这个值得时候,google不能获取最新的值,但是i
引言 自己一直在用MooTools框架, 偶然看见这篇文章,作者是MooTools Team的成员之一,讲解了jQuery和MooTools的一点点区别,主要是我觉得他写JavaScript代码和他的思维方式很值得学习。另外,对 JavaScript的编程思想和对框架的选择都有很多很好的建议,对于犹豫在各种框架上的人有很好的指导作用,另外对于想深入对框架进行研究或者想自己 开发框架的人也有很好的建
$(this).attr(key); 获取节点属性名的值,相当于getAttribute(key)方法
$(this).attr(key, value); 设置节点属性的值,相当于setAttribute(key,value)方法
eg:&div id=&w_1& class=&widget& diywidgetid=&${templat
在jQuery1.7中 .delegate()已被.on()取代。对于早期版本,它仍然使用事件委托的最有效手段。 在事件绑定和委派,delegate()和on在一般情况下,这两种方法是等效的。
.delegate() 指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
// jQuery 1.4.3+ $( elements )
本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是
(function(){ // ... })();
在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东。
在全局作用域内声明变量时,有var 和没var看起
在php中常见的计算字符串长度的函数有:strlen和mb_strlen.当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。 在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。 下面通过例子,讲解这两者之间的区别。 先看例子:
&?php //测试时文件的编码方式要是UTF
近期在读jQuery的源码。
发现这里有个东西很难理解。
这里的 jQuery , jQuery.fn , jQuery,fn,init ,jQuery,prototype 都代表什么。
来看下jQuery的源码是怎么样定义的:
(function( window, undefined ) {
var jQuery = (function() { // 构建jQuer
1.JOIN和UNION区别
join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 。
JOIN用于按照ON条件联接两个表,主要有四种: INNER JOIN:内部联接两个表中的记录,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。我理解的是只要记录不符合ON条件,就不会显示在结果集内。 LEFT
《jQuery权威指南》第1章jQuery开发入门,本章通过循续渐进的方式,先从jQuery的基础概念入手,介绍jQuery库的下载,引入简单应用方法;后部分侧重于jQuery控制DOM对象和页面CSS样式的介绍,通过一些简单的小示例,使读者对jQuery在页面中的功能应用有一个大致的了解,为下一章节进一步学习jQuery库的详细对象和方法奠定基础。本节为大家介绍jQuery程序的代码风格。&nb
但在我们自己写jQuery代码的时候,却很少关注或使用过pushStack(). 如果我们需要写个涉及DOM遍历的插件,它就会显得尤其有用.
在jQuery内部,pushStack()方法通过改变一个jQuery对象的prevObject属性来&跟踪&链式调用中前一个方法返回的DOM结果集(被jQuery封装过,也是个jQuery对象,说是&跟踪&,是因为

我要回帖

更多关于 attr prop 区别 的文章

 

随机推荐