Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过JS或Jquery返回输入组的当前索引_Javascript_Jquery_Html - Fatal编程技术网

Javascript 通过JS或Jquery返回输入组的当前索引

Javascript 通过JS或Jquery返回输入组的当前索引,javascript,jquery,html,Javascript,Jquery,Html,休斯顿,我们有个情况。。任何光线都将不胜感激 很难解释,但我会尽力的。我做了作业,但没能把它解决。代码如下所示。(静态,难以更改。需要找到现有结构的解决方案。) 所讨论的数组是等级[] (line 1) \<input id='grade[]' onclick="curr_ndx(this);" \> // index of grade[] is 0 (line 2) \<input id='grade[]' onclick="curr_ndx(this);" \&

休斯顿,我们有个情况。。任何光线都将不胜感激

很难解释,但我会尽力的。我做了作业,但没能把它解决。代码如下所示。(静态,难以更改。需要找到现有结构的解决方案。)

所讨论的数组是等级[]

(line 1)  \<input id='grade[]'  onclick="curr_ndx(this);" \>   // index of grade[] is 0
(line 2)  \<input id='grade[]'  onclick="curr_ndx(this);" \>   // index of grade[] is 1
(line 3)  \<input id='grade[]'  onclick="curr_ndx(this);" \>   // index of grade[] is 2
(第1行)\//等级[]的索引为0
(第2行)\//等级[]的索引为1
(第3行)\//等级[]的索引为2
我需要在“grade[]”数组中检索输入的“grade[]”索引。如果用户单击第2行的“输入”,则应向“1”或“2”发出警报,如果用户单击(第3行输入)


非常感谢。

在jQuery中,您可以使用
.index()
方法找出给定项的哪个同级项如下所示:

HTML:

工作演示:

仅供参考,您的输入字段上也不应该有重复的id值。也许您打算使用
name='grade[]'
而不是
id='grade[]'


如果您有其他输入字段,并且只想计算
id='grade[]'
字段,则可以执行以下操作:

$("#grades input").click(function() {
    alert($(this).index("[id*='grade[]']"));
});

但是,您确实不应该有重复的id值,因此它可能是这样的:

HTML:


您可以使用Jquery
index()


如果您为所有元素指定了相同的名称,则函数可以是:

function curr_ndx(el) {
  var els = document.getElementsByName(el.name);
  for (var i=0, iLen=els.length; i<iLen; i++) {
    if (els[i] == el) return i;
  }
}
功能电流(el){
var els=document.getElementsByName(el.name);

对于(var i=0,iLen=els.length;IID应该是唯一的,因为这些是输入,我建议将id改为名称属性。您需要为所有输入元素提供一些唯一的id,显然在您的情况下,它可以是索引,单击u可以返回具有索引的id。
id是唯一的,您不能有多个同名id
,但w是否筛选来自其他人的同名输入?在我看来,OP混淆了ID和NAME属性。@RobG-OP并不表示存在类似的复杂情况,因此我没有尝试解决。这就是为什么我在示例中将这些输入标记放在包含div中的原因。当我放置“alert($(this).index())”时,它会发布(-1)每次输入一次。只是一些琐事。不确定这是不是正确的方法。效果很好。你们都很棒。你们中的任何人碰巧在多伦多,我请客喝啤酒。
$("#grades input").click(function() {
    alert($(this).index("[id*='grade[]']"));
});
<div id="grades">
<input name='grade[]' \>
<input name='grade[]' \>
<input name='grade[]' \>
</div>
$("#grades input[name='grade[]']").click(function() {
    alert($(this).index("[name='grade[]']"));
});
$('input').click(function() {
  alert($(this).index());
})
function curr_ndx(el) {
  var els = document.getElementsByName(el.name);
  for (var i=0, iLen=els.length; i<iLen; i++) {
    if (els[i] == el) return i;
  }
}
function curr_ndx(el) {
  var els = el.form[el.name];
  for (var i=0, iLen=els.length; i<iLen; i++) {
    if (els[i] == el) return i;
  }
}