jQuery特性操作

前面的话

  每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息。操作特性的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‘));//元素test0console.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);//元素test0console.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‘));//undefinedconsole.log($(‘#ele1‘).attr(‘data‘));//undefined</script>
时间: 2024-10-06 00:13:03

jQuery特性操作的相关文章

深入学习jQuery特性操作

× 目录 [1]获取特性 [2]设置特性 [3]删除特性 前面的话 每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息.操作特性的DOM方法主要有3个:getAttribute()方法.setAttribute()方法和removeAttribute()方法,而在jQuery中用一个attr()与removeAttr()就可以全部搞定了,包括兼容问题.本文将介绍jQuery中的特性操作 获取特性 jQuery中用attr()方法来获取和设置特性,attr是attri

深入学习jQuery样式操作

× 目录 [1]设置样式 [2]增加样式 [3]删除样式[4]切换样式[5]判断样式[6]样式操作 前面的话 使用javascript脚本化CSS是一个系列,包括行间样式.计算样式.CSS类.样式表.动态样式和伪元素这六部分.而jQuery也实现了脚本化CSS的功能,提供了更为简单易用的方法 设置样式 前面介绍过jQuery的特性操作,可以通过attr()方法进行样式设置 <style> .cB{color: blue;} </style> <script src="

jQuery HTML 操作

jQuery 包含很多供改变和操作 HTML 的强大函数. 改变 HTML 内容 语法 $(selector).html(content) html() 函数改变所匹配的 HTML 元素的内容(innerHTML). 实例 $("p").html("W3C HTML"); 查看示例 添加 HTML 内容 语法 $(selector).append(content) append() 函数向所匹配的 HTML 元素内部追加内容. 语法 $(selector).prep

Jquery CSS 操作 - height() 方法

一.height() 方法 height() 方法返回或设置匹配元素的高度 $(".btn1").click(function(){ $("p").height(50); }); height方法事例 Jquery CSS 操作 - height() 方法,码迷,mamicode.com

jQuery 属性操作

方法 描述 addClass() 向匹配的元素添加指定的类名. attr() 设置或返回匹配元素的属性和值. hasClass() 检查匹配的元素是否拥有指定的类. html() 设置或返回匹配的元素集合中的 HTML 内容. removeAttr() 从所有匹配的元素中移除指定的属性. removeClass() 从所有匹配的元素中删除全部或者指定的类. toggleClass() 从匹配的元素中添加或删除一个类. val() 设置或返回匹配元素的值. 获得内容 - text().html()

深入学习jQuery节点操作

× 目录 [1]创建节点 [2]插入节点 [3]删除节点[4]复制节点[5]替换节点[6]包裹节点 前面的话 DOM节点操作包括创建节点.插入节点.移除节点.替换节点和复制节点.jQuery也有类似的方法,此外,还扩展了包裹节点.本文将详细介绍jQuery节点操作 创建节点 创建节点的流程比较简单,包括创建节点.添加属性和添加文本.若应用原生方法,一般地,包括document.createElement().setAttribute()和innerHTML var ele = document.

jQuery的操作

jQuery可以操作的样式可以分成两种css和class两种样式.css又可以分成三种:1:设置单个样式. 2:设置多个样式. 3:获取样式. class可以分成用法: 1:添加class样式. 2:移除class样式. 3:判断class样式. 4:切换class样式. jQuery操作也可以做动画,比较常用的有以下几种: 1:slideDown slideUp slideToggle slideDown(speed,callback) slideDown slideUp是滑入和滑出的意思,效

jQuery Ajax 操作函数

jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 HTTP (Ajax) 请求. .ajaxComplete() 当 Ajax 请求完成时注册要调用的处理程序.这是一个 Ajax 事件. .ajaxError() 当 Ajax 请求完成且出现错误时注册要调用的处理程序.这是一个 Ajax 事件. .ajaxSend() 在 Ajax 请求发送之前显示

Jquery DOM 操作列表

jQuery 文档操作方法 这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html(). jQuery 属性操作方法 下面列出的这些方法获得或设置元素的 DOM 属性. 这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html(). jQuery CSS 操作函数 下面列出的这些方法设置或返回元素的 CSS 相关属性.