2011-02-20 52 views
1

我已經有了一個有多個多維名稱的表單。我正在使用jquery * =選擇器來挑選它們上的組,並在它們更改時執行函數。我想弄清楚如何獲取表單元素名稱的單個數組索引。jquery通配符選擇器 - 表單元素數組的索引

我希望能夠通過它的個別數組''部分來識別doorID。例如door_6x7,或者爲0 opening[door_6x7][0]

JQUERY:

$("select[name*=door_6x]").change(function() { 

     var doorID = $(this).attr("name"); 
      alert(doorID); 

    }); 

樣本HTML:

    <td width="50"><select name="opening[door_6x7][0]"> 
         <option value="0" selected="selected">0</option> 
         <option value="1">1</option> 
         <option value="2">2</option> 
         <option value="3">3</option> 
        </select></td> 
        <td width="50"><select name="opening[door_6x7][1]"> 
         <option value="0" selected="selected">0</option> 
         <option value="1">1</option> 
         <option value="2">2</option> 
         <option value="3">3</option> 
        </select></td> 
        <td width="50"><select name="opening[door_6x7][2]"> 
         <option value="0" selected="selected">0</option> 
         <option value="1">1</option> 
         <option value="2">2</option> 
         <option value="3">3</option> 
         <option value="4">4</option> 
         <option value="5">5</option> 
         <option value="6">6</option> 
        </select></td> 
        <td width="50"><select name="opening[door_6x7][3]"> 
         <option value="0" selected="selected">0</option> 
         <option value="1">1</option> 
         <option value="2">2</option> 
         <option value="3">3</option> 
         <option value="4">4</option> 
         <option value="5">5</option> 
         <option value="6">6</option> 
        </select></td> 
+0

有趣。 ..我什至不知道這是可能的...希望看到它的答案:) –

回答

1

我不知道這是否是你想要什麼:

$("select[name*=door_6x]").change(function() { 

    var doorID = $(this).attr("name"); 
    var x = doorID.match(/\[[0-9]+\]/i); 

    alert(x[0].match(/[0-9]+/i)); 

}); 
+0

正則表達式工程很好地解析它的manaully。我希望有一種方法可以將名稱當作數組來處理,所以我可以參考開放[0]將是'door_6x7',開放[1]將是'0'。也許我只是在想錯誤的方式。 – etriad

+1

爲什麼你不使用rel屬性,然後只讀rel?我通常這樣做.. –