2013-04-29 70 views
1
<input name="Indian_Karnataka_Bangalore" value="Bangalore" /> 
<input name="Indian_Andhra_Hyderabad" value="Hyderabad" /> 
<input name="Indian_Kerala_Trivandrum" value="Trivandrum" /> 
<input name="Indian_Maharashtra_Mumbai" value="Mumbai" /> 

在給定時間,DOM中只有一個輸入元素。我將如何知道特定輸入元素名稱的名稱?我不想依賴價值觀,因爲它可能會改變。 使用jQuery。如何獲取類似名稱的元素? jQuery

INDIAN術語在每個輸入元素中都是靜態的。

其實我試圖驗證輸入元素。 DOM將具有所有元素,但在給定時間內,只有一個元素將處於活動狀態,並且該元素應該具有某些值。

+1

如果只有一個人會出現,只需進入第一個名字即可。 – Yoshi 2013-04-29 08:26:46

+0

你是什麼意思的'相似的名稱元素'?你可以給一個例子 – 2013-04-29 08:28:49

+2

可能的重複的[JQuery的:選擇多個選擇標籤的名稱](http://stackoverflow.com/questions/3663647/jquery-select-multiple-select-tags-of-a-name) – 2013-04-29 08:31:00

回答

2
var $inputs = $('input[name*="Indian"]'), 
    inputsName = $inputs.attr('name'); 

您可以使用與CSS相同的選擇器。

克里斯Coyier寫了一篇關於屬性選擇一塊here

+0

你以前的回答比較好,我不認爲他想要的是實際的「名字」價值......這將是毫無意義的 – musefan 2013-04-29 08:31:00

+0

@musefan - 恢復。他確實說過他想要名稱屬性值,但我認爲他的意思是*我將如何選擇它而不知道名稱*。 – ahren 2013-04-29 08:32:12

+1

是的,那也是我的想法。也許你可以添加一個更完整的答案 – musefan 2013-04-29 08:34:14

0

嘗試

var name = $('input[name^="Indian_"]').attr('name') 
1
var indianInputs = $("input[name^='Indian']"); 
//Matches all input elements whose name attrributes 'begin' with 'Indian' 

這與@ahren在他的論文中所發表的不同lector將匹配其名稱屬性包含字符串'Indian'的所有輸入元素。

indianInputs.attr("name"); 

將返回第一個匹配元素的name屬性的值,這對於你的標記會Indian_Karnataka_Bangalore

要查找所有indianInputs的名稱,則必須遍歷所有匹配的元素

var indianInputNames = []; 
indianInputs.each(function() { 
    indianInputNames.push($(this).attr("name")); 
}); 
+0

只是一個說明 - 你打破你的選擇器字符串。檢查您使用的引號的類型。 – ahren 2013-04-29 08:39:01

+1

對不起兄弟,首先有適當的字符串,格式化時將其編輯到錯誤的字符串。現在修復它。謝謝 :) – 2013-04-29 08:40:16

0

您是否嘗試過濾功能?像這樣:

$('input:visible') 
    .filter(function() { 
     return $(this).attr("name").match(/^Indian/); 
}); 

這將返回一個名稱以「Indian」開頭的輸入元素數組。 這裏有一個很好的例子:https://stackoverflow.com/a/193787/1237117