指數

2015-11-25 14 views
2

我有相同名稱的許多元素:指數

<input type="text" name="Education[GraduationDate][0]" /> 
<input type="text" name="Education[GraduationDate][1]" /> 
<input type="text" name="Education[GraduationDate][2]" /> 
<input type="text" name="Education[GraduationDate][3]" /> 

我想的jQuery給我選擇的名稱的索引號,所以如果我選擇第一個給我數(0),等等。

我這樣做與jQuery:

var arrayname = $(this).attr('name'); 
var arrayindex = arrayname.substring(24,25); 

arrayindex回到我的指數,我想,但我認爲這是不這樣做很好的方式,因爲也許你有指數與2位數字,所以子串不能正常工作。

請諮詢..

+2

你爲什麼不保持在自定義屬性值? –

+0

你可以例如使用正則表達式來獲得你的索引值。正則表達式會匹配第二個'[]'括號內的任何東西 –

+0

你需要展示更多的代碼,你如何使用$(this)作爲上下文。 –

回答

0

希望這可以幫助你:

... 
var name = ($this).attr('name'); 
var digits = name.match(/\d+/g) 
var index = digits.pop() // suppose your name has more than one digit, the last one is what you want(index) 
... 
+0

這是我的工作,謝謝 –

2

您可以使用

$("[name^='Education[GraduationDate]']").index(this) 

Fiddle

+0

不工作,給我-1爲所有 –

+0

我試着小提琴,它正在爲我工​​作 – tR4xX

+3

@MuhannadAlsuleimani因此,提供jsFiddle複製您的問題,因爲顯然你做錯了什麼(或我想念的東西) –

4

需要與教育[GraduationDate]不僅教育

嘗試使用.index() "input[name^=Education]" "input[name^=Education\\[GraduationDate\\]]"作爲選擇參數傳遞

.index(selector) 

選擇

類型:選擇

表示一個jQuery集合,其中尋找一個元件的選擇器。

$("input").change(function() { 
 
    console.log($(this).index("input[name^=Education\\[GraduationDate\\]]")) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" name="Education[GraduationDate][0]" /> 
 
<input type="text" name="Education[GraduationDate][1]" /> 
 
<input type="text" name="Education[GraduationDate][2]" /> 
 
<input type="text" name="Education[GraduationDate][3]" />

+0

我需要它與教育[GraduationDate]不僅教育 –

+0

@MuhannadAlsuleimani看到更新後;注意''''''''需要在屬性選擇器中的選擇符字符串中轉義,其中不存在周圍的引號 – guest271314

+0

總是給我-1 –