本文實例講述了jQuery使用之標記元素屬性用法。分享給大家供大家參考。具體分析如下:
這裡介紹jQuery的使用主要包括jQuery如何控制頁面,包含元素的屬性、css樣式風格、DOM模型、表單元素和事件處理等。
標記元素的屬性
html中每一個標記都具有一些屬性,他們這個標記在頁面中呈現各種狀態,例如下面的<a>標記
代碼如下:<a herf="http://www.baidu.com" title="isaac" target="_blank" id="linkisaac">
該標記<a>表示標記的名稱,為一個超鏈接,另外還有href titile target id等屬性表示這個超鏈接在頁面中的各種狀態。
本文從jQuery角度出發,進一步講解頁面屬性控制方法。
1.each()遍歷元素
each(callback)方法主要用於對選擇器中的元素進行遍歷,它接受一個函數作為參數,這個函數接受一個參數,指代元素的序號。對於標記的屬性而言,可以利用each()方法配合this關鍵字來獲取或者設置選擇器中的每個元素對應的屬性值。
使用each()方法遍歷所有元素。
代碼如下:<script type="text/javascript">
$(function() {
$("p").each(function(index){
this.title = "這是第"+ (index+1) + "個P,id是:"+ this.id;
});
});
</script>
<div>
<p id="001">第一段</p>
<p id="002">第二段</p>
<p id="003">第二段</p>
<p id="004">第二段</p>
<p id="005">第二段</p>
<p id="006">第二段</p>
<p id="007">第二段</p>
</div>
以上代碼中有7個P元素,首先利用$("p")獲取頁面中所有p元素集合,然後使用each()方法遍歷所有的圖片。通過this關鍵字對圖片進行訪問,獲取圖片的id,並設置圖片的id屬性。其中each()方法的函數index為元素所處的序號。
2.獲取屬性的值。attr(name)方法
除了在遍歷整個選擇器中的元素。很多時候需要得到某個對象的特點的值,在jQuery中可以通過attr(name)方法很輕松的實現這一點。該方法獲取元素集中第一個的屬性值。如果沒有匹配則返回unfefined.
代碼如下:script type="text/javascript">
$(function() {
var sTitle = $("p").attr("title");//獲取第一個p元素的title屬性值
$("#display").text(sTitle);
});
</script>
<div>
<p id="001" title="isaac,hobby">第一段</p>
<p id="002" title="isaac,hobby">第二段</p>
<p id="003">第二段</p>
<p id="004">第二段</p>
<p id="005">第二段</p>
<p id="006">第二段</p>
<p id="007">第二段</p>
<span id="display"></span>
</div>
如果,想獲取第二個p的title屬性值,則可以通過位置選擇器來完成。
代碼如下:$(function() {
var sTitle = $("p:eq(1)").attr("title");//獲取第2個p元素的title屬性值
$("#display").text(sTitle);
});
3.設置屬性的值。attr(name,value)
attr()方法除了可以獲取元素的值外,還可以設置屬性的值,通用 的表達式為
代碼如下:attr(name,value)
例如:下面代碼將使頁面的超鏈接都在新窗口打開。
代碼如下:<script type="text/javascript">
$(function() {
$("a[href*=http]").attr("target","_blank");
});
</script>
例子:
代碼如下:<script type="text/javascript">
function DisableBack() {
$("button:gt(0)").attr("disabled", "disabled");
}
</script>
<div>
<button onclick="DisableBack()">第一個Button</button>
<button>第二個Button</button>
<button>第三個Button</button>
</div>
通過位置選擇器,當單擊第一個按鈕時,後面兩個按鈕同時被禁用。
很多時候,我們希望屬性的值能根據不同的元素有規律的變化。這個時候我們可以使用attr(name,fn),第二個參數為一個函數。該函數接受一個參數,為元素的序號,返回值為字符串。
代碼如下:<script type="text/javascript">
$(function() {
$("div").attr("id", function(index) {
//將id設置為序號相關的參數
return "div-id" + index;
}).each(function() {
//找到每一項的span標記
$(this).find("span").html("(id='" + this.id + "')");
});
});
</script>
<div>第0項 <span></span>
</div>
<div>第1項 <span></span>
</div>
<div>第2項 <span></span>
</div>
返回內容:
代碼如下:第0項 (id='div-id0')
第1項 (id='div-id1')
第2項 (id='div-id2')
以上代碼通過attr(name,fn)將頁面中所有的<div>塊的id屬性值設置為序號相關的參數。並通過each()方法遍歷div塊,將id值顯示在各自的<span>標記中。這可以看到jQuery鏈的強大。
有的時候對於某些元素,希望同時設置它不同的屬性,如果采用上面的方法則需要一個個屬性設置。jQuery很人性化, attr()還提供一個列表設置attr(properties)方法。可以設置多個屬性。
代碼如下:<script type="text/javascript">
$(function() {
$("img").attr({
src: "06.jpg",
title: "名字1",
alt: "名字2"
});
});
</script>
<img>
<img>
<img>
<img>
<img>
執行結果:
代碼如下:<img src="06.jpg" title="名字1" alt="名字2">
<img src="06.jpg" title="名字1" alt="名字2">
<img src="06.jpg" title="名字1" alt="名字2">
<img src="06.jpg" title="名字1" alt="名字2">
<img src="06.jpg" title="名字1" alt="名字2">
4.刪除屬性
當設置某個元素屬性的值時,可以通過removeAttr(name)方法將屬性值刪除。這時元素將恢復默認的設置。例如下面的代碼使得所有按鈕均不被禁用。
代碼如下:$(function() {
$("button").removeAttr("disabled")
});
removeAttr(name)刪除屬性相當於html標記中不刪除該屬性。並不是取消了該標記的這個特點。上述代碼運行後,所有按鈕依然具有設置為禁用的能力。
希望本文所述對大家的jQuery程序設計有所幫助。