2011-03-02 51 views
1

我有一個遺留的PHP應用程序,它使用括號來命名錶單元素,例如,使用jQuery捕捉PHP支架樣式元素

<select name="samplegroup[776]" id="samplegroup[776]"> 
<option value="1">1</option> 
<option value="2" selected >2</option> 
<option value="3">3</option> 
</select> 
<select name="samplegroup[883]" id="samplegroup[883]"> 
<option value="1">1</option> 
<option value="2" selected >2</option> 
<option value="3">3</option> 
</select> 

我如何可以匹配具有其次是使用jQuery括號中的數字samplegroup選擇?例如。 $("what_do_i_write_here")

+4

在ids中不能有'['或']'字符。你需要先解決這個問題。 – Quentin 2011-03-02 12:35:32

+0

好點大衛! – RobertPitt 2011-03-02 12:37:43

+0

現代PHP應用程序仍然在名稱中使用括號(而不是ID)。 – Thai 2011-03-02 12:43:51

回答

1

使用attributeStartsWith選擇:

$('select[name^="samplegroup"]') 

它可能並不重要,這是忽略了方括號部分的數量,除非你也還有其他select元素,其namesamplegroup開頭。

http://jsfiddle.net/PbSVY/

+0

很多時候,你忽略括號中的數字很重要 - 如果你動態地向DOM添加新的表單元素(通常是爲多個「子記錄」編輯界面時) – 2011-05-18 08:07:54

4

您需要在jQuery選擇器中使用\\轉義括號。

除此之外,您可以使用^=序列告訴jQuery(Sizzle)您正在查找的屬性應該使用給定的字符串開始

$('select[name^="samplegroup\\["]').doSomething(); 

演示http://jsfiddle.net/ZDrfK/1/

0

我修改選擇到

<select name="samplegroup[776]" id="samplegroup_776"> 

然後

$("select.samplegroup_776"). //... 

或者你需要在ID括號?我瞭解名稱標籤,但我不認爲ID應該這樣命名。

2

這個工作,比使用名稱更清潔。

$("#samplegroup\\[883\\]")