2013-04-29 117 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

相关问题