未捕获的类型错误:无法读取未定义的属性“替换”
Posted
技术标签:
【中文标题】未捕获的类型错误:无法读取未定义的属性“替换”【英文标题】:Uncaught TypeError: Cannot read property 'replace' of undefined 【发布时间】:2014-06-09 03:47:14 【问题描述】:我是使用 Kendo Grid 和 Kendo UI 的新手。我的问题是如何解决这个错误
Uncaught TypeError: Cannot read property 'replace' of undefined
这是我在 KendoGrid 上的代码
$("#Grid").kendoGrid(
scrollable: false,
sortable: true,
pageable:
refresh: true,
pageSizes: true
,
dataSource:
transport:
read:
url: '/Info/InfoList?search=' + search,
dataType: "json",
type: "POST"
,
pageSize: 10
,
rowTemplate: kendo.template($("#rowTemplate").html().replace('k-alt', '')),
altRowTemplate: kendo.template($("#rowTemplate").html())
);
导致错误的行
rowTemplate: kendo.template($("#rowTemplate").html().replace('k-alt', '')),
rowTemplate 的 HTML
<script id="rowTemplate" type="text/x-kendo-tmpl">
<tr class='k-alt'>
<td>
$ FirstName $ LastName
</td>
</tr>
</script>
谢谢:)
【问题讨论】:
因为$("#rowTemplate").html()
返回未定义
你的页面中是否有id为rowTemplate
的元素
@ArunPJohny 是的。等我更新我的问题
你能在$("#Grid").kendoGrid(..);
之前做alert($("#rowTemplate").length)
吗
@ArunPJohny 先生,它会提醒0
接下来我该怎么做?还检查了 id 的命名,但它们都是唯一的
【参考方案1】:
我认为 jQuery 找不到该元素。
首先找到元素
var rowTemplate= document.getElementsByName("rowTemplate");
或
var rowTemplate = document.getElementById("rowTemplate");
或
var rowTemplate = $('#rowTemplate');
然后再次尝试您的代码
rowTemplate.html().replace(....)
这个问题已经存在于: Uncaught TypeError : cannot read property 'replace' of undefined In Grid
【讨论】:
以上是关于未捕获的类型错误:无法读取未定义的属性“替换”的主要内容,如果未能解决你的问题,请参考以下文章
错误:`未捕获(承诺中)类型错误:无法读取未定义的属性'doc'`
未捕获的类型错误:无法读取未定义的属性 toLowerCase