2012-06-03 198 views
1

我有一些數據來自於我在Html頁面中填充A Div的服務器。 我寫的DIV的方法如下:使用jquery訪問標籤的屬性

<div class="BigDiv"><label class = "AttList" Std_Id="' + Std_Id + '">' + Std_Name +'</label></div> 

現在,我想這個div裏面的數據。 div內有一些其他標籤,所以我使用this.children來訪問這個標籤。

 var labels = $(this).children('div'); 
     var StdName = this.children[0].childNodes[0].nodeValue; 

我要訪問的Std_Id的Std_Id屬性裏面,但我不知道該怎麼辦呢?你有什麼想法? 謝謝。

回答

2

使用getAttribute

var labels = $(this).children('div'); 
var StdId = this.children[0].getAttribute("Std_Id"); 

需要注意的是,根據HTML5規範,自定義屬性應與data-開始,但大多數瀏覽器都可以容忍。

+0

它的工作,非常感謝。 –

+0

我很困惑,OP想用jquery。這個解決方案大麥使用jQuery仍然被標記爲答案? – simonlchilds

+0

在這種情況下,您不會獲得任何收益。您不需要強制jQuery插入您編寫的每一行代碼中。 – Dennis

3

假設$(this)是對.BigDiv元素的引用:

var StdName = $(this).find('label').attr('Std_Id'); 

或者,類似地,並且在假設this.BigDiv元件:

var children = this.childNodes; 
for (var i=0,len=children.length; i<len; i++){ 
    if (children[i].nodeType == 1 && children[i].tagName.toLowerCase() == 'label'){ 
     var StdName = this.getAttribute('Std_Id'); 
    } 
} 

參考文獻:

+0

謝謝大衛=) –

+0

很高興有幫助=) –

1

你可以使用attr方法,這樣,

var value = $('.AttList').attr('Std_Id'); 

編輯

好了,你實現,需要做到這一點...

var value = $(this).find('.AttList').attr('Std_Id'); 

假設thisdiv或者說div

+0

對不起,你的答案是使用jquery,但它沒有奏效。 –

+0

我已經更新了我的答案,以便更多地瞭解使用jQuery所需的內容。如果你打算使用jQuery,爲什麼不把它用於「document.getElementById()'替換之外的東西呢? – simonlchilds

1

家長爲了節省元素,用一個jQuery選擇器選定,這樣做:

$labels = $('.BigDiv').find('label'); 

現在,您可以循環通過每個標籤與jQuery的foreach循環:

$.each($labels, function() { 
    var std_id = $(this).attr('Std_Id'); 
    // do something with std_id 
});