此篇要記錄的是 關於 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> 結果:橘子汁
<script> alert($("ul li:eq(1)").attr("value")); </script> 結果:123
操做2:attr(name,value) //設置屬性的值
<script> $("ul li:eq(1)").attr("title","不吃橘子"); alert($("ul li:eq(1)").attr("title")); </script> 結果:不吃橘子
操做3:attr(name,fn) //設置屬性的函數值
<script> $("ul li:eq(1)").attr("title",function(){ return this.value}); alert($("ul li:eq(1)").attr("title")); </script> 結果:123
操做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
<script> $("ul li:eq(1)").attr({className:"lili"}); </script> 結果:第二個li的html:<li class="lili" title="橘子汁" value="123">橘子</li>
<script> $("ul li:eq(1)").attr({id:"lili"}); </script> 結果:第二個li的html:<li id="lili" title="橘子汁" value="123">橘子</li>
<script> $("ul li:eq(1)").attr({style:"color:red"}); </script>
操做5: removeAttr(name) //刪除屬性
<script> $("ul li:eq(1)").removeAttr ("title"); </script>
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 屬性設置區別: css 是設置樣式的屬性的,如顏色,字體,背景等; //$("#newClass").css("background-color", "#d6d6d6");//改變背景色 attr 貌似是能操做全部屬性,包括Jquery未封裝的屬性。//$("#newClassImg").attr("src", "./images/plus3.jpg");//改變圖片源
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>
如此使用,前提:要加載的標籤必須有 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