jquery 實踐操做:attr()方法

此篇要記錄的是 關於 jquery  的 attr() 方法javascript

在JS中設置節點的屬性與屬性值用到setAttribute(),得到節點的屬性與屬性值用到getAttribute(),而在jquery中,用一個attr()就能夠所有搞定了,贊一個先css

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)//獲取屬性的值
<script> alert($("ul li:eq(1)").attr("title")); </script> 結果:橘子汁
 eg1: 使用attr(name)獲取title值
<script> alert($("ul li:eq(1)").attr("value")); </script> 結果:123
eg2: 使用attr(name)獲取value值
操做2:attr(name,value) //設置屬性的值
<script> $("ul li:eq(1)").attr("title","不吃橘子"); alert($("ul li:eq(1)").attr("title")); </script> 結果:不吃橘子
eg: 使用attr(name,value)修改title值爲:不吃橘子
操做3:attr(name,fn)  //設置屬性的函數值
<script> $("ul li:eq(1)").attr("title",function(){ return this.value}); alert($("ul li:eq(1)").attr("title")); </script> 結果:123
eg: 把value屬性的值設置設給title屬性
操做4:attr(properties) //將一個「名/值」形式的對象設置爲全部匹配元素的屬性
<script> $("ul li:eq(1)").attr({title:"不喝橘子汁",value:"不是123"}); alert($("ul li:eq(1)").attr("title")); alert($("ul li:eq(1)").attr("value")); </script> 結果:不喝橘子汁 不是123
eg1: 爲<ul>裏第2個<li>設置title和value屬性值
<script> $("ul li:eq(1)").attr({className:"lili"}); </script> 結果:第二個li的html:<li class="lili" title="橘子汁" value="123">橘子</li>
eg2: 爲<ul>裏第2個<li>元素設置class
<script> $("ul li:eq(1)").attr({id:"lili"}); </script> 結果:第二個li的html:<li id="lili" title="橘子汁" value="123">橘子</li>
eg3: 爲<ul>裏第2個<li>元素設置id
<script> $("ul li:eq(1)").attr({style:"color:red"}); </script>
eg4: 爲<ul>裏第2個<li>元素設置style
操做5: removeAttr(name) //刪除屬性
<script> $("ul li:eq(1)").removeAttr ("title"); </script>
eg: 刪除title
 
  
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(): 設置樣式
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>jQuery中val,html,css,text,attr</title>
     
        <script src="js/jquery-1.4.2.js" type="text/javascript"></script>
     
        <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>
    eg: jquery 中 val,html,css,text,attr
  • 可以使用 attr("src", "***.html"): 在 div 中嵌套一個頁面(效果相似load()方法)
    如此使用,前提:要加載的標籤必須有 src 屬性,經常使用於 iframe 時
    示例:
    主頁面:A.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>父級頁面</title>
        <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
    </head>
    
    <style>
    
    </style>
    
    <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>

    嵌入界面:B.htmlhtml

    <p style="width: 100px; height: 100px; background-color: #c1cdcd">kjsgkahksadhgcha</p>

    執行主頁面,點擊按鈕就可看到嵌入效果;java

     

    使用 iframe 嵌入,也可以使用load()方法直接嵌入,具體參考jquery

     

 

參考:http://blog.sina.com.cn/s/blog_7fb1495b0100vcyk.html編程

相關文章
相關標籤/搜索