http://blog.youkuaiyun.com/qq_35809245/article/details/54389797
一: 大家先将固有属性和新增属性理解一下,基本定义这篇链接我写的很清楚,我直接代码演示:
对于固有属性:
html代码:
jquery代码1:
$("div").removeAttr("title");
结果
<div class="cls1 cls2" id="dv" ></div>
<div class="cls1 cls2" id="dv1" ></div>
removeAttr(“固有属性名”)会直接将所有匹配到的元素的该属性删除掉,包括属性名和属性值
jquery代码2:
$("div").removeProp("title");
结果
<div class="cls1 cls2" id="dv" title=undefined ></div>
<div class="cls1 cls2" id="dv1" title=undefined></div>
removeProp(“固有属性名”)仅仅会移除掉所有匹配到的元素的固有属性的值,(不能移除新增属性),属性名会保留。
对于新增属性:
html代码:
jquery代码:
$("div").attr("index","1")
这行代码执行后,
<div class="cls1 cls2" id="dv" title="我是一个div" index="1" ></div>
<div class="cls1 cls2" id="dv1" title="我是一个div" index="1"></div>
然后:1 用removeAttr(“属性名“)
$("div").removeAttr("title");
这行代码执行后:
如果 2 用 removeProp(”属性名“)
$("div").removeProp("index");
这行代码执行后:
<div class="cls1 cls2" id="dv" title="我是一个div" index="1" ></div>
<div class="cls1 cls2" id="dv1" title="我是一个div" index="1"></div>
二 总结:如果想要移除元素的属性有两种方法
1 removeAttr(“属性名”),该方法可以移除固有属性和新增属性的属性,包括属性名和属性值一并移除
2 removeProp(”属性名”),该方法仅仅可以移除固有属性的属性值,并不能移除新增属性的属性值,并且仅仅移除属性值变为 undefined,不会移除属性。
扩展福利
3 removeAttr( ) ,removeProp( )如果里面不写属性名,则不会移除任何属性,这点和removeClass( ),如果removeClass( ),里面不写类名的话,那么将移除匹配到元素的所有的class 类名,如果写了类名,那么仅仅移除匹配到的所有元素的该类名。
html 代码
<div class="cls1 cls2" id="dv" title="我是一个div" ></div>
<div class="cls1 cls2" id="dv1" title="我是一个div"></div>
jquery代码第一种情况
$("div").removeClass();
执行后:
<div classid="dv" title="我是一个div" ></div>
<div class id="dv1" title="我是一个div"></div>
jquery代码第二种情况
$("div").removeClass("cls1");
<div class="cls2" id="dv" title="我是一个div" ></div>
<div class="cls2" id="dv1" title="我是一个div"></div>