如果用“奇怪的名字”输入来模拟数组,我有一个包含很多网格的页面:
<input type="text" id="Punteggi[@counter].Descrizione" readonly="readonly" tabindex="-1" name="Punteggi[@counter].Descrizione" class="{validate: {required:true}}" value="@item.Descrizione" />
如何使用jQuery设置这些输入的值,具体来说,我该如何选择它们?我尝试了很多方法但没有任何作用。
答案 0 :(得分:4)
问题是括号在CSS(作为属性选择器)中具有特殊含义,而点也作为类选择器具有特殊含义。试试$.escapeSelector
:
$('#' + $.escapeSelector('Punteggi[@counter].Descrizione'))
这将转义选择器,因此特殊字符不会影响选择。您还可以尝试使用属性选择器并将其包装在引号中:
$('[id="Punteggi[@counter].Descrizione"]')
这将完全匹配该ID,并且不会将任何特殊字符视为特殊字符。
答案 1 :(得分:0)
您需要转义[
选择器中的]
,@
,.
和id
个字符。为此,请使用\\
,如下所示:
var val = $('#Punteggi\\[\\@counter\\]\\.Descrizione').val();
console.log(val);
&#13;
<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" />
&#13;