2017-07-04 116 views
2

我有含有大量的格子的頁面,如果用「奇怪的名字」輸入到模擬陣列:如何選擇ID中包含特殊字符的元素?

<input type="text" id="Punteggi[@counter].Descrizione" readonly="readonly" tabindex="-1" name="Punteggi[@counter].Descrizione" class="{validate: {required:true}}" value="@item.Descrizione" /> 

如何設置這些投入使用jQuery的價值,特別是,我將如何選擇它們?我嘗試了很多方法,但沒有任何效果。

回答

3

的問題是,括號具有特殊含義的CSS(如屬性選擇器)和點做太多,因爲類選擇。嘗試$.escapeSelector

$('#' + $.escapeSelector('Punteggi[@counter].Descrizione')) 

這將難逃選擇這樣的特殊字符不影響選擇。您也可以嘗試在引號中的屬性選擇器和包裝是:

$('[id="Punteggi[@counter].Descrizione"]') 

這將字面上匹配ID,並且不會把任何特殊字符爲特殊字符。

+0

我沒有意識到有這個:)的幫手:) –

+0

哇:第二種方法的作品! 謝謝...小時與這個這樣的戰鬥... –

+0

完美答案與解釋! +1 :) – SagarPPanchal

0

您需要轉義id選擇器中的[],@.字符。要做到這一點,使用\\這樣的:

var val = $('#Punteggi\\[\\@counter\\]\\.Descrizione').val(); 
 

 
console.log(val);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="Punteggi[@counter].Descrizione" readonly="readonly" tabindex="-1" name="Punteggi[@counter].Descrizione" class="{validate: {required:true}}" value="@item.Descrizione" />