2016-11-02 44 views
3

我使用jQuery和我有這樣的元素:如何使用jQuery來查找ID中帶有方括號的元素?

<input class="css-checkbox" id="services[3492][selected]" name="services[3492][selected]" type="checkbox" value=" 1"> 

當我試圖通過其ID — services[3492][selected] —得到我的控制檯項目我得到一個空的響應:[]

代碼:

$('#services[3490][selected]') // Not working 
$('[id*="services[3490][selected]"') // Working 

我認爲這是因爲[字符。也許我需要清理,或者使用一些轉義字符或unicode轉換。

+0

'$( '[ID * = 「服務[3490] [選擇]」')' '''在'''後面缺少結尾']'。那是準確的,並且工作如此? – doppelgreener

回答

4

您需要使用\\轉義jQuery選擇器中的元字符(如!"#$%&'()*+,./:;<=>[email protected][\]^{|}~)。

$('#services\\[3490\\]\\[selected\\]') 


jQuery selecctors文檔:

使用任何元字符(如!"#$%&'()*+,./:;<=>[email protected][\]^ {|}〜`)作爲名稱的文字部分,它必須進行轉義有兩個反斜槓:\。例如,id =「foo.bar」的元素可以使用選擇器$(「#foo \ .bar」)。 W3C CSS規範包含complete set of rules regarding valid CSS selectors。 Mathias Bynens的博客由CSS character escape sequences for identifiers提供。

3

你一定要逃逸的id選擇的方括號,使他們不會被解釋爲屬性選擇:

$('#services\\[3490\\]\\[selected\\]') 
4

每jQuery的documentation

使用任何超常的字符(如!「#$%&'()* +,。/:; < =>?@ [] ^`{|}〜)作爲名稱的文字部分,必須用兩個反斜槓:\。

要在第一個例子中使用括號,我相信你的選擇將需要:

$('#services\\[3490\\]\\[selected\\]')

相關問題