眼前的言辞

  每个元素还发出一个或者多单特点,这些特征的用处就是给有相应元素或其情之增大信。操作特性的DOM方法要发生3个:getAttribute()方法、setAttribute()方法和removeAttribute()方法,而在jQuery中用一个attr()与removeAttr()就可以整个搞定了,包括兼容问题。本文将介绍jQuery中之特性操作

 

获特性

  jQuery中用attr()方法来获取和安装特色,attr是attribute(特性)的缩写,在jQuery
DOM操作中见面时不时使用attr()方法

attr(attributeName)

  attr(传入特性名):获取特性的价值,相当给DOM中的getAttribute()

<div id="test"></div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log(test.getAttribute('id'));//'test'    
console.log($('#test').attr('id'));//'test'
</script>

  [注意]attr()方法就获得第一个门当户对配元素的属性值。要博每个独立的因素的属性值,我们依靠jQuery的.each()或者.map()方法循环

<div class="test" id="ele1">元素一</div>
<div class="test" id="ele2">元素二</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('.test').attr('id'));//'test'
$('.test').each(function(index) {
  console.log(index+":"+$(this).attr('id'));//'1:ele1 2:ele2'
});
</script>

prop()

  属性(property)和特征(attribute)是例外之。属性是DOM节点的特性,而特性是HTML标签的特征

  [注意]有关性和特征的别之详细信息挪动至此

<div id="test" data="abc"></div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
test.data = 123;
//IE8-浏览器返回123,其他浏览器返回'abc'
console.log(test.getAttribute('data'))
console.log(test.data)//123
//IE8-浏览器返回123,其他浏览器返回'abc'
console.log($('#test').attr('data'))
console.log($('#test').prop('data'))//123
</script>

  由地方代码可知,jQuery并没缓解小版本IE浏览器特性和特征混淆的问题

 

安装特色

  设置特色虽然还以attr()方法,但也闹3栽方式

【1】attr(attributeName,value)

  attr(特性名, 特性值):设置特色的价,相当给DOM中的setAttribute()

<div id="test"></div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
test.setAttribute('title','abc');
console.log(test.getAttribute('title'))//'abc'
$('#test').attr('title','123');    
console.log($('#test').attr('title'));//'123'
</script>

  jQuery禁止改变一个<input>或<button>元素的type特性,会静默失败。因为IE8-不见面容许改变<input>或者<button>元素的type特性,静默失败

<input id="test" type="text">
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
test.setAttribute('type','button');
$('#test').attr('type','button');    
</script>

【2】attr(attributes)

  attr(attributes):给指定元素设置多个特点值,即{特性名相同:
“特性值一”,特性名二:“特性值二”,…}

  当装多个特征,包裹特性名的引号是可选的

<div id="test"></div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
test.setAttribute('title','abc');
test.setAttribute('a','abc');
console.log(test.getAttribute('title'))//'abc'
console.log(test.getAttribute('a'))//'abc'
$('#test').attr({
    title: '123',
    a: '123'
});    
console.log($('#test').attr('title'));//'123'
console.log($('#test').attr('a'));//'123'
</script>

  [注意]设置样式名“class”特性时,必须下引号。否则IE8-浏览器下会报错

<div id="test"></div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('#test').attr({
    class: 'test'
});    
//IE8-浏览器会报错,其他浏览器输出'test'
console.log($('#test').attr('class'));
</script>

【3】attr(attributeName,function(index,attr))

  attr(特性名,函数值):通过采取一个函数来安属性,可以依据该因素上之别属于性值返回最终所需要的属于性值

  函数中的index表示元素以相当集合中之目位置,html表示元素原来的HTML内容,this指向当前底要素,函数返回用来安的价值

<div class="test" id="ele1" title="元素">元素一</div>
<div class="test" id="ele2" title="元素" >元素二</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('.test').attr('title',function(index,attr){
    return attr + this.className +index
})
console.log($('#ele1').attr('title'));//元素test0
console.log($('#ele2').attr('title'));//元素test1
</script>

  如果用javascript实现类似的效益,实际上就是字符串连接

  [注意]IE8-浏览器不支持getElementsByClassName()方法

<div class="test" id="ele1" title="元素">元素一</div>
<div class="test" id="ele2" title="元素" >元素二</div>
<script>
var classTest = document.getElementsByClassName('test');
for(var i = 0; i < classTest.length; i++){
    classTest[i].title = classTest[i].title + classTest[i].className + i;
}
console.log(ele1.title);//元素test0
console.log(ele2.title);//元素test1
</script>

 

剔除特性

removeAttr(attributeName)

  removeAttr()方法应用原生的removeAttribute()函数,但是她的长是好直接以一个jQuery
对象上调用该方式,并且它们解决了超越浏览器的特点名不同的问题

  要移除的性质名于1.7版开始,可以是一个空格分隔的特性列表

<div id="ele1" title="元素" data="value">元素</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('#ele1').attr('title'));//'元素'
console.log($('#ele1').attr('data'));//'value'
$('#ele1').removeAttr('title data');
console.log($('#ele1').attr('title'));//undefined
console.log($('#ele1').attr('data'));//undefined
</script>

相关文章

网站地图xml地图