我在我的mvc razor应用程序中使用kendo gird用于mutli级别细节行扩展功能。为了拥有每个网格的唯一名称,我有一些固定的文本加上行的唯一ID
e.g。
@(Html.Kendo().Grid<MyModal>()
.Name("topGrid_#=uniqueKeyColumnValue#")
并在一行展开点击,我知道通过传递这个uniqueKeyColumnValue及其硬编码前缀我必须得到哪些详细的网格数据。到目前为止情况还不错但现在我被告知有一些特殊的角色,如&#39;&amp;&#39;某些值中的运算符,当我通过将其前缀与uniqueKeyColumnValue连接来构造详细网格名称时
e.g。
var idKey = e.sender.dataItem(e.masterRow).uniqueKeyColumnValue;
var detailedGridName = '#detailedGrid' + idKey;
var detailedGrid = $(detailedGridName).data("kendoGrid");
我收到以下错误
0x800a139e - JavaScript运行时错误:语法错误,无法识别的表达式:#
在这一行
这显然是因为&amp; idKey中的运算符,例如N'安培; 12345var detailedGrid = $(detailedGridName).data(&#34; kendoGrid&#34;);
我没有选择给网格提供硬编码名称。有什么建议吗?
答案 0 :(得分:0)
尝试使用此格式$("div[id='detailedGrid_" + idKey + "']").data('kendoGrid')
答案 1 :(得分:0)
您需要使用&
转义\\
,最好不要使用它。 _
/ -
可以达到目的。
$('#N\\&12345').text('Yahoooooooooooooooo')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="N&12345"></div>
如果您使用的是jQuery 3,则可以使用jQuery.escapeSelector( selector )。
$('#' + jQuery.escapeSelector('N&12345')).text('Yahoooooooooooooooo')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<div id="N&12345"></div>