2013-08-07 44 views
1

選擇屬性我有一些輸入標籤是這樣的:我想不通爲什麼我不能在jQuery的

<input data-role="none" id="TaskActionList.SpaceId" type="hidden" value="@Model.CombinedAvailableSpaces.Single().SpaceId" name="" data-inputname="TaskActionList" data-propertyname="SpaceId" data-singlespace="true"/>   

(我有完全相同的輸入標籤的3我的網頁上)

我想從輸入標記的最後一個屬性中獲取最後一個屬性值:'true'。我試過這個jQuery,但我不斷收到undefined值:

$('input').attr('data-singlespace') 

我應該得到背單詞「真」,而是得到了一個未定義。爲什麼會這樣呢?

回答

1

.attr() method從jQuery對象的第一個元素返回指定的屬性。在你的情況下,jQuery對象$('input')選擇頁面上的每個輸入元素,所以你試圖從第一個輸入中獲取該屬性,其中(可能)該屬性未定義。

更改您的選擇器以確保獲得正確的元素。

+0

會更好。我的頁面上還有一大堆其他輸入標籤。我只是添加了一個類,我想要的,並得到它。謝謝! –

2

這是一個好主意,用.data()方法來訪問自定義屬性

$('input').data('singlespace') 

的問題也可能是因爲多重輸入。

把裏面的代碼$.each

$('input').each(function() { 
    console.log($(this).data('singlespace')); 
}); 

或者使用eq目標基於索引的特定輸入作爲選擇過於具體。

$('input').eq(1).data('singlespace') ; 
// Gets the 2nd input 
+0

是的,這是我在做什麼。我只是沒有顯示包裝。謝謝 –

+0

使用數據沒有做任何事情不幸的是 –

+0

爲什麼'.data()'「更好」?它試圖對屬性值進行自動類型轉換,在這種情況下,如果它返回一個布爾值「true」而不是字符串「」true「',但在其他情況下,轉換可能是一個問題,否則它會很有用。 – nnnnnn

1

你也可以試試這個:

$('input[data-singlespace]').data('singlespace'); 
相關問題