attr屬性大全


在JS中設置節點的屬性與屬性值用到setAttribute(),獲得節點的屬性與屬性值用到getAttribute(),而在jquery中,用一個attr()就可以全部搞定了:


 

jquery中用attr()方法來獲取和設置元素屬性,attr是attribute(屬性)的縮寫,在jQuery DOM操作中會經常用到attr(),attr()有4個表達式。

1. attr(屬性名       //獲取屬性的值(取得第一個匹配元素的屬性值。通過這個方法可以方便地從第一個匹配元素中獲取一個屬性的值。如果元素沒有相應屬性,則返回 undefined )

2. attr(屬性名, 屬性值)   //設置屬性的值 (為所有匹配的元素設置一個屬性值。

3. attr(屬性名,函數值    //設置屬性的函數值  (為所有匹配的元素設置一個計算的屬性值。不提供值,而是提供一個函數,由這個函數計算的值作為屬性值。

4.attr(properties)    //給指定元素設置多個屬性值,即:{屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … … }。(這是一種在所有匹配元素中批量設置很多屬性的最佳方式。 注意,如果你要設置對象的class屬性,你必須使用'className' 作為屬性名。或者你可以直接使用'class'或者'id'。)

 


 

html代碼結構:

<p title="你最喜歡的水果是。">你最喜歡的水果是?</p>
<ul>
   <li title="蘋果汁">蘋果</li>
   <li title="橘子汁" value="123">橘子</li>
   <li title="菠蘿汁">菠蘿</li>
</ul>

 1.attr(name)//獲取屬性的值

1.1 使用attr(name)獲取title值:

alert($("ul li:eq(1)").attr("title"));

結果:橘子汁

 

1.2 使用attr(name)獲取value值:

alert($("ul li:eq(1)").attr("value"));

結果:123

 

2. attr(name,value)   //設置屬性的值

2.1 使用attr(name,value)修改title值為:不吃橘子

$("ul li:eq(1)").attr("title","不吃橘子");
alert($("ul li:eq(1)").attr("title"));

結果:不吃橘子

 

3. attr(name,fn)  //設置屬性的函數值

3.1 把value屬性的值設置設給title屬性。

$("ul li:eq(1)").attr("title",function(){ return this.value});
alert($("ul li:eq(1)").attr("title")); 

結果:123

 

4.attr(properties)  //將一個“名/值”形式的對象設置為所有匹配元素的屬性

4.1 獲取<ul>里第2個<li>設置title和value屬性。

$("ul li:eq(1)").attr({title:"不喝橘子汁",value:"不是123"});
alert($("ul li:eq(1)").attr("title"));
alert($("ul li:eq(1)").attr("value"));

結果:不喝橘子汁  不是123

 

4.2 獲取<ul>里第2個<li>設置class。

$("ul li:eq(1)").attr({className:"lili"});

結果:第二個li的html:<li class="lili" title="橘子汁" value="123">橘子</li>

 

4.3 獲取<ul>里第2個<li>設置id。

$("ul li:eq(1)").attr({id:"lili"});

結果:第二個li的html:<li id="lili" title="橘子汁" value="123">橘子</li>

 

4.4 獲取<ul>里第2個<li>設置style。

$("ul li:eq(1)").attr({style:"color:red"});


 

那么怎么刪除屬性呢?

$("ul li:eq(1)").removeAttr ("title");

就這么簡單, attr 其實就是原生js中 getAttribute 的簡化實現removeAttr 就是 removeAttribute 的簡寫了。

 


 

 

attr其他應用:

 

jquery 中 val() 與之類似,
$(this).val(); 獲取某個元素節點的value值,相當於 $(this).attr("value");
$(this).val(value); 設置某個元素節點的value值,相當於 $(this).attr("value",value);

 

  • 實際操作中,需要設置多個屬性值,可一次性設置
    格式: $(選擇器).attr({屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … …})
    eg:  $(“img”).attr({src:“http://t.douban.com/lpic/s3791510.jpg” , height: “300″ , width : “500″})
  • attr() 屬性設置 與 jQuery CSS 屬性設置區別:
    attr() 屬性設置 與 jQuery CSS 屬性設置區別:
    css 是設置樣式的屬性的,如顏色,字體,背景等;   //$("#newClass").css("background-color", "#d6d6d6");//改變背景色 
    attr 貌似是能操作所有屬性,包括Jquery未封裝的屬性。  //$("#newClassImg").attr("src", "./images/plus3.jpg");//改變圖片源
  • jQuery中 html(), text(), val(), css() 方法使用 區別
    html(), text(), val()用法類似: 調用方法時有參數則為設置,沒有則為取值
    css(): 設置樣式

     
               
        <script type="text/javascript">
            $(function() {
                //html方法有參數則為設置,沒有則為取值
                //取值
                alert($("#mydiv").html());
                //設值
                $("#mydiv").html("我是:<font color='red'>龐傑111</font>");
                alert($("#mydiv").html());
                 
                //text方法有參數則為設置,沒有則為取值,同上
                //取值
                alert($("#mydiv").text());
                //設值
                $("#mydiv").text("我是:<font color='red'>龐傑</font>");
                alert($("#mydiv").text());
     
                //val方法有參數則為設置,沒有則為取值,同上
                //取值
                alert($("#mydiv").val());
                //設值
                $("#mydiv").val("我是:<font color='red'>龐傑</font>");
                alert($("#mydiv").val());
     
                //attr方法讀取或者設置元素的屬性,對於JQuery沒有封裝的屬性(所有瀏覽器沒有差異的屬性)用attr進行操作。
                //取值
                alert($("#mydiv").attr("href"));
                //設值
                $("#mydiv").attr("href", "http://www.baidu.com");
                alert($("#mydiv").attr("href"));
                //使用removeAttr刪除屬性。刪除的屬性在源代碼中看不到,這是和清空屬性的區別。“查看源文件”只能看服務器上下載下來的那份。
                 
                //css方法設置樣式
                //取的樣式
                alert($("#mydiv").css("background"));
                //設樣式
                $("#mydiv").css("background", "green");
                alert($("#mydiv").css("background"));
            })
            //val、html、text、css等是方法,不是屬性,jQuery中很少有屬性的用法,因為屬性寫法很難“鏈式編程”。
        </script>
     
    </head>
    <body>
        <div id="mydiv" style="background: red">
            我是:<font color="navy">龐傑</font>
        </div>
    </body>
    </html>
  • 可使用 attr("src", "***.html"): 在 div 中嵌套一個頁面(效果類似load()方法)
     
    如此使用,前提:要加載的標簽必須有 src 屬性,常用於 iframe 時
    示例:
    主頁面:A.html
    <head>
        <meta charset="UTF-8">
        <title>父級頁面</title>
        <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
    </head>
    <body>
        <div id="example">這是父級頁面!</div>
        <div id="my_content">
            <!-- 嵌入頁面部分 -->
            <!--<iframe  id="alarmTrendTabIframe" scrolling="no"  src=""></iframe>-->
        </div>
        <div id="footer">
            <button onclick="showMyContent();">插入div</button>
        </div>
    
        <script>
            function showMyContent() {
                $("#my_content").html('<iframe  id="alarmTrendTabIframe" scrolling="no"  src=""></iframe>');
                $("#alarmTrendTabIframe").attr("src","B.html");  //load() 正確
            }
        </script>
    </body>
    </html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM