Javascript 如何通过Jquery通过索引名访问元素?

Javascript 如何通过Jquery通过索引名访问元素?,javascript,jquery,forms,Javascript,Jquery,Forms,我有几点意见: <input type="text" name="entry[1]" value="aaa" id="firstEntry" /> <input type="text" name="entry[2]" value="bbb" id="secondEntry" /> <input type="text" name="entry[3]" value="ccc" id="thirdEntry" /> 但是如何得到索引2呢? 我只需要知道索引(2),

我有几点意见:

<input type="text" name="entry[1]" value="aaa" id="firstEntry" />
<input type="text" name="entry[2]" value="bbb" id="secondEntry" />
<input type="text" name="entry[3]" value="ccc" id="thirdEntry" />
但是如何得到索引2呢?
我只需要知道索引(2),而不是全名(条目[2])。

好吧,名称只是一个字符串,剩下的部分必须通过字符串操作来完成:

var name = $("#secondEntry").attr('name'); // name = "entry[2]"
name = name.substring(name.indexOf('[')+1); // name = "2]"

// if you want an integer
name = parseInt(name, 10); // name = 2

// if you want a string representation
name = name.substring(0, name.indexOf(']'));  // name = "2"

名称只是一个字符串,其余的操作都是字符串操作:

var name = $("#secondEntry").attr('name'); // name = "entry[2]"
name = name.substring(name.indexOf('[')+1); // name = "2]"

// if you want an integer
name = parseInt(name, 10); // name = 2

// if you want a string representation
name = name.substring(0, name.indexOf(']'));  // name = "2"

你可以使用。

你可以使用。

如果它始终是那种格式,即条目[x],那么你可以使用正则表达式

var elename = $("#secondEntry").attr('name'); var i = elename.match("entry\\[([0-9])+\\]"); var ind = i[1]; 变量elename=$(“#第二项”).attr('name'); var i=elename.match(“条目\\[([0-9])+\\\]”; var ind=i[1];
如果它总是采用这种格式,即条目[x],那么您可以使用正则表达式

var elename = $("#secondEntry").attr('name'); var i = elename.match("entry\\[([0-9])+\\]"); var ind = i[1]; 变量elename=$(“#第二项”).attr('name'); var i=elename.match(“条目\\[([0-9])+\\\]”; var ind=i[1];
虽然这对他的样本数据有效,但哇,这是脆弱的。如果他在某个点将
entry
更改为
item
,或者如果超过九个,或者……当然,它只适用于“entry”,但这就是他所看到的(RegExp解决方案也不是更通用);关于你的第二个论点:
'entry[12413525]'。子字符串(6,'entry[12413525]'。长度-1)
给了我
“12413525”
。关于第一项:是的,我也对我读到的另一项发表了评论。第二项:Doh!我只是完全误读了长度。虽然这对他的样本数据有效,但哇,它很脆弱。如果他在某个点将
entry
更改为
item
,或者如果超过九个,或者……当然,它只适用于“entry”,但这就是他所看到的(RegExp解决方案也不是更通用);关于你的第二个论点:
'entry[12413525]'。子字符串(6,'entry[12413525]'。长度-1)
给了我
“12413525”
。关于第一项:是的,我也对我读到的另一项发表了评论。第二项:Doh!我只是完全误读了长度位。如果你想把它作为一个数字,
var ind=parseInt(I[1])
。但是从正则表达式中删除“entry”,这样它就不会脆弱(不会因名称更改而中断)。如果您希望它作为一个数字,
var ind=parseInt(i[1])
。但是从正则表达式中删除“entry”,这样它就不会脆弱(不会因名称更改而中断)。
var re = /entry\[(\d{1})\]/;
var index = re.exec(string);