2017-07-04 83 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" />

相关问题