【问题标题】:How to get index of input in javascript - can use jQuery如何在 javascript 中获取输入索引 - 可以使用 jQuery
【发布时间】:2012-03-02 13:30:21
【问题描述】:

我有一个从 js 代码生成的输入数组。我已经将输入的名称设置为:name="myTextInput[]"

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

我尝试了类似的方法:

 onClick="oc(this);" 

地点:

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

但不工作。

我也可以使用 jQuery

【问题讨论】:

  • 您没有在示例代码中使用 jQuery。你愿意吗?
  • 今后,请尽量提供完整的代码示例,以便我们准确了解您在做什么以及您要解决什么问题。

标签: php javascript jquery arrays input


【解决方案1】:

您可以在 jquery 中使用 EACH 函数。这将解析一组匹配的元素。您可以在其中放置一个自定义函数,该函数将在您解析时使用每个元素的索引作为参数。

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

您还可以像这样获取每个输入的值:

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

在此处查看详细信息:http://api.jquery.com/jQuery.each/

** 编辑 **

如果您希望在单击时显示在警告框中的值,请同时使用 each 函数和 click 函数。记得获取输入的实时值,使用$(this).val()。点击返回索引和值数据:

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

【讨论】:

  • 我认为 OP 正在寻找这样做onclick,而不是作为each() 功能的一部分。如果你要循环,你可以考虑一个简单的for(...) 结构。
【解决方案2】:

你可以得到这样的输入(虽然不确定你是否真的想要click事件)...

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

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

【讨论】:

    【解决方案3】:

    请使用index()方法查找元素的位置。

    看看这个例子:http://jsbin.com/uyucuv/edit#javascript,html

    <ul>
      <li id="foo">foo</li>
      <li id="bar">bar</li>
      <li id="baz">baz</li>
    </ul>
    
    
    $(function() {
      $("li").on("click", function() {
        alert($(this).index());
      });
    });
    

    在此处查看index() 文档:http://api.jquery.com/index/

    希望这会有所帮助!

    【讨论】:

      【解决方案4】:

      “jQuery 方式”是避免onClick="whatever()" 并使用与 HTML 标记分开的纯 JavaScript。在一对 &lt;script&gt; 标签之间试试这个(注意:需要 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/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-10
        • 2010-11-15
        • 1970-01-01
        • 2011-03-11
        相关资源
        最近更新 更多