2013-02-25 42 views
1

我有一組由ajax調用一個PHP腳本生成的元素。我似乎無法選擇一個dynamicaly生成tr由id [數組]

<tr id="rem[313]">...</tr> 
<tr id="rem[345]">...</tr> 

我的一個功能需要通過id刪除某個tr。

我已經試過一切,但不能似乎選擇混賬東西

function remove_it(x){ 
$('#rem['+x+']').remove(); 
$(this).closest('tr').remove; // this i fire from the button click 
} 

測試我使用。長度選擇,這一切返回零

function remove_it(x){ 
alert($('#rem['+x+']').live().length; 
alert($('#rem['+x+']').length); 
alert($('#rem['+x+']').on().length); 
} 
+0

我第二個大衛。特別是因爲你使用雙引號。或者使用單引號。 – 2013-02-25 17:35:25

+0

您可能想考慮將該id添加到「data- *」屬性中。這樣就不需要轉義選擇器的內容了......您可以搜索'$(「tr [data-foo ='」+ x +「'」)「)'。 – Lix 2013-02-25 17:43:45

回答

2

要選擇這個元素:

<tr id="rem[313]">...</tr> 

用途:

$('#rem\\[' + x + '\\]') 

Simple JS Fiddle proof-of-concept

或者,你可以簡單地使用:

$('tr[id^="rem"][id*="' + x + '"]'); 

Simple JS Fiddle proof-of-concept

+0

我必須傳遞數組索引作爲函數中的變量 - x所以我會$('rem \\ ['+ x +'\\]')? – 2013-02-25 17:37:34

+0

太棒了,逃跑了!謝謝!!爲什麼我需要跳過支架?要等7分鐘才能接受答案。 – 2013-02-25 17:40:33

+1

因爲它們用於jQuery選擇器和CSS,對於attribut-equals,屬性包含和屬性存在表示法。 – 2013-02-25 17:41:22