JQuery中的.attr()与.removeAttr()

原创 2016年05月31日 07:06:27
每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息。如:在img元素中,src就是元素的特性,用来标记图片的地址。

在JS中,我们经常使用到的DOM,操作特性方法主要有3个,getAttribute方法、setAttribute方法和removeAttribute方法,就算如此在实际操作中还是会存在很多问题,这里先不说。而在jQuery中用一个attr()与removeAttr()就可以全部搞定了,包括兼容问题,JQuery是不是很酷啊,呵呵呵呵!

jQuery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr()。attr()有4个表达式如下:

1.attr(传入属性名):获取属性的值
2.attr(属性名, 属性值):设置属性的值
3.attr(属性名,函数值):设置属性的函数值
4.attr(attributes):给指定元素设置多个属性值,即:{属性名一: “属性值一” , 属性名二: “属性值二” , … … }

removeAttr()删除方法也是经常出现的呢。

.removeAttr( attributeName ) : 为匹配的元素集合中的每个元素中移除一个属性(attribute)

优点:

attr、removeAttr都是jQuery为了属性操作封装的,直接在一个 jQuery 对象上调用该方法,很容易对属性进行操作,也不需要去特意的理解浏览器的属性名不同的问题。

注意

dom中有个概念的区分:Attribute和Property翻译出来都是“属性”,《js高级程序设计》书中翻译为“特性”和“属性”。简单理解,Attribute就是dom节点自带的属性。而Property是这个DOM元素作为对象,其附加的内容,例如,tagName, nodeName, nodeType,, defaultChecked, 和 defaultSelected 使用.prop()方法进行取值或赋值等。
实战一下吧:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
    input {
        display    : block;
        margin     : 10px;
        padding    : 10px;
        background : #bbffaa;
        border     : 1px solid #ccc;
    }
    </style>
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>

<body>
    <h2>.attr()与.removeAttr()</h2>
    <h3>.attr</h3>
    <form>
        <input type="text" value="设置value" />
        <input type="text" value="获取value"/>
        <input type="text" value="回调拼接value" />
        <input type="text" value="删除value" />
    </form>

    <script type="text/javascript">
        //找到第一个input,通过attr设置属性value的值
        $("input:first").attr('value','.attr( attributeName, value )')
    </script>

    <script type="text/javascript">
        //找到第二个input,通过attr获取属性value的值
        $("input:eq(1)").attr('value')
    </script>

    <script type="text/javascript">
        //找到第三个input,通过使用一个函数来设置属性
        //可以根据该元素上的其它属性值返回最终所需的属性值
        //例如,我们可以把新的值与现有的值联系在一起:
        $("input:eq(2)").attr('value',function(i, val){
            return '通过function设置' + val
        })
    </script>

    <script type="text/javascript">
        //找到第四个input,通过使用removeAttr删除属性
        $("input:eq(3)").removeAttr('value')
    </script>


</body>

</html>
版权声明:本文为博主原创文章,未经博主允许不得转载。

jQuery中.attr()和.removeAttr()的详解

jQuery中.attr()和.removeAttr()的详细介绍,jQuery的方法重在理解,变通使用。
  • fxss5201
  • fxss5201
  • 2016年09月08日 10:38
  • 8046

jquery使用attr,removeAttr二次无法选中的问题解决办法

大概需求是这样,我一张页面有个按table的循环,每个table里第一行是个“全选”按钮,点击此按钮可以控制下面的checkbox反选,第二行有若干checkbox,也就是第一行要控制的那些多选按钮。...
  • cctcc
  • cctcc
  • 2017年07月18日 17:20
  • 814

jQuery源码分析之removeAttr方法和attr方法

jQuery.removeAttr函数源码测试: var rnotwhite = (/\S+/g); var propFix ={ "for": "htmlFor", "class": "...
  • liangklfang
  • liangklfang
  • 2015年10月13日 14:05
  • 1083

JQuery removeAttr() and removeClass()

移除元素样式 div { padding: 8px; ...
  • yuxuac
  • yuxuac
  • 2015年07月26日 15:45
  • 650

jQuery RemoveAttr(checked)之后再Attr(checked)属性无效果的原因分析

jQuery中attr()和prop()在修改checked属性时的区别 投稿:whsnow 字体:[增加 减小] 类型:转载   使用语句$.attr('checked',true...
  • u013291076
  • u013291076
  • 2016年11月28日 19:27
  • 540

jquery中对dom元素的disabled属性的禁用和启用(removeAttr)

jquery中禁用(disabled)dom元素   I have a wired behaviour when I try todisable or readonly a input field...
  • u010832551
  • u010832551
  • 2015年09月22日 20:43
  • 926

jquery 1.11 attr("disabled" 无效

jquery 版本 1.11.3  $("link[title='"+style+"']").removeAttr("disabled"); $("link[title!='"+style+"']...
  • lipei1220
  • lipei1220
  • 2016年04月05日 18:54
  • 2174

jQuery---JQuery remove(),removeAttr()和removeClass()示例区别

JQuery remove()方法 remove()方法与detach()方法相同,它从DOM中删除所选元素,包括所有文本和子节点。但是,它不会将与DOM中匹配的元素集合中的已删除元素相关联的所有数...
  • Dunhuang_Hyoutei
  • Dunhuang_Hyoutei
  • 2017年08月04日 18:37
  • 918

jQuery的attr(),removeAttr()与prop(),removeProp()方法的区别

对于HTML元素本身就带有的固有属性,在处理时,使用prop(),removeProp()。 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr(),removeAttr()。 ...
  • u013897685
  • u013897685
  • 2017年03月24日 19:11
  • 542

ie8下jquery的attr的问题

在使用$("#span01").attr("style","");之前先设置$("#span01").removeAttr("style");
  • dayuweixia
  • dayuweixia
  • 2015年05月12日 12:11
  • 1973
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JQuery中的.attr()与.removeAttr()
举报原因:
原因补充:

(最多只允许输入30个字)