2012-03-02 47 views
-1

我有一个由js代码生成的输入数组。我已经设置了这样的输入名称:name="myTextInput[]"如何在javascript中获取输入索引 - 可以使用jQuery

如何获取所选输入的索引?

我想是这样的:

onClick="oc(this);" 

其中:

function oc(inp) 
{ 
    return(inp.index); 
} 

,但不工作。

我也可以使用jQuery

+1

你不使用jQuery在你的示例代码。你想要_____吗? – Blazemonger 2012-03-02 13:32:47

+0

是的,我可以使用jQuery代码 – Ervin 2012-03-02 13:33:46

+0

将来,请尝试提供一个完整的代码示例,以便我们准确理解您正在处理的内容以及您想要解决的问题。 – Blazemonger 2012-03-02 13:55:48

回答

3

您可以使用jQuery中的EACH函数。这将通过一组匹配的元素进行解析。你可以在里面放置一个自定义函数,这个自定义函数将使用每个元素的索引作为参数解析。

$('input').each(function(index){ 
    alert(index); 
}); 

您还可以得到每个输入的值是这样的:

$('input').each(function(index, val){ 
    alert(index + ' has value: ' + val); 
}); 

这里查看详细信息:http://api.jquery.com/jQuery.each/

**编辑**

如果你想显示的值在点击时的警告框中,一起使用每个功能和点击功能。请记住要获取输入的实时值,请使用$(this).val()。点击返回索引和数值数据:

$('input').each(function(index, val){ 
    $(this).click(function(){ 
     alert(index + ' has value: ' + $(this).val()); 
    }); 
}); 
+1

我以为OP在寻找'onclick',而不是'each()'函数的一部分。如果你要循环,你可以考虑一个简单的'for(...)'结构。 – shanabus 2012-03-02 13:39:03

+0

@shanabus - 谢谢你的抬头。 – 2012-03-02 13:45:46

1

你可以得到这样输入(不知道如果你真的想要的click事件虽然) ...

var inputs = $('input[name="myTextInput[]"]'); 

inputs.click(function() { 
    alert(inputs.index(this)); 
}); 
+0

@nachito:啊,谢谢。完全错过了。 – 2012-03-02 13:46:29

0

的“jQuery的方式”是为了避免onClick="whatever()"和使用纯JavaScript从分离HTML标签。一对<script>标签之间试试这个(注意:需要jQuery的1.7或更高版本):

$('input').on('click', function() { 
    var varname = $(this).attr('name'), 
     $arr = $('input[name="'+varname+'"]'), 
     idx = $arr.index(this); 

    alert(idx); 
});​ 

http://jsfiddle.net/mblase75/EK4xC/

相关问题