2012-03-02 50 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/

相關問題