Javascript 如何获得名称相似的元素?jQuery

Javascript 如何获得名称相似的元素?jQuery,javascript,jquery,html,Javascript,Jquery,Html,在给定的时间,DOM中只存在一个输入元素。如何知道特定输入元素名称的名称?我不想依赖于值,因为它可能会改变。 使用jQuery 印度术语在每个输入元素中都是静态的 实际上,我正在尝试验证输入元素。DOM将拥有所有元素,但在给定时间只有一个元素处于活动状态,并且该元素中应该有一些值 <input name="Indian_Karnataka_Bangalore" value="Bangalore" /> <input name="Indian_Andhra_Hyderabad"

在给定的时间,DOM中只存在一个输入元素。如何知道特定输入元素名称的名称?我不想依赖于值,因为它可能会改变。 使用jQuery

印度术语在每个输入元素中都是静态的


实际上,我正在尝试验证输入元素。DOM将拥有所有元素,但在给定时间只有一个元素处于活动状态,并且该元素中应该有一些值

<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" />
您可以使用与CSS相同的选择器

克里斯·科伊尔写了一篇关于属性选择器的文章

您有很多方法可以通过属性检查的名称进行选择

 $('input[name="element_name"]')
这与@ahren发布的不同之处在于,他的选择器将匹配名称属性包含字符串“Indian”的所有输入元素

var indianInputs = $("input[name^='Indian']"); 
//Matches all input elements whose name attrributes 'begin' with 'Indian'
将返回第一个匹配元素的name属性的值,对于您的标记,该值将是Indian\u Karnataka\u Bangalore

要查找所有
indianInputs
的名称,必须迭代所有匹配的元素

indianInputs.attr("name");

你试过过滤功能吗?大概是这样的:

var indianInputNames = [];
indianInputs.each(function() {
    indianInputNames.push($(this).attr("name"));
});
这将返回一个名称以“Indian”开头的输入元素数组。
这里有一个很好的例子:。

如果只有一个元素会出现,只需选择第一个元素并获得它的名称。你所说的类似名称的
元素是什么意思?你能举一个可能重复的例子吗?我想你需要弄清楚你想要什么?是否要获取
名称
属性值?而且,如果只有一个会出现,那么什么定义了从哪一个开始呢?当然,你可以用它来计算名称,然后你可以用它来计算你需要的选择器,实际上我正在尝试验证输入元素。DOM将拥有所有元素,但在给定时间只有一个元素处于活动状态,并且该元素中应该有一些值。给出的答案对我没有帮助。你的答案比以前更好,我不认为他想要的是实际的“姓名”值。。。那就是pointless@musefan-回复。他确实说过他想要name属性值,但我想他是想说我在不知道名称的情况下如何选择它。是的,我也是这么想的。也许你可以把这两个元素都加上,以获得更完整的答案。实际上,我正在尝试验证输入元素。DOM将拥有所有元素,但在给定时间只有一个元素处于活动状态,并且该元素中应该有一些值。给出的答案对我没有帮助。@Syed-也许你需要重新表述你的问题。请注意-你弄断了选择器字符串。请检查您正在使用的引号类型。对不起,兄弟,首先使用了正确的字符串,在格式化时将其编辑为错误的字符串。现在修好了。谢谢:)
indianInputs.attr("name");
var indianInputNames = [];
indianInputs.each(function() {
    indianInputNames.push($(this).attr("name"));
});
$('input:visible')
    .filter(function() {
        return $(this).attr("name").match(/^Indian/);
});