这是HTML
<div id="partialViewContainer">
<table id="assetTable" class="table-hover table-bordered table-striped">
<thead>
<tr>
<th class="col-md-2">
colulmn1
</th>
<th class="col-md-4">
column2
</th>
<th class="col-md-4">
column3
</th>
<th class="col-md-3">
column4
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
1
</td>
<td>
2
</td>
<td>
3
</td>
<td>
4
</td>
</tr>
}
</tbody>
</div>
<script type="text/javascript">
$(document).ready(function () {
//Get tAble contents
var getTableContents = function () {
//Get the reference to the table
var table = document.getElementById('assetTable');
//Get the number of rows in the table
var noOfRows = table.rows.length;
//Loop through each row of the table
for (var i = 0; i < noOfRows; i++) {
//Get the cells of the table
var cells = table.rows[i].cells;
//Get the number of cells in each row
var noOfCells = cells.length;
for (var j = 0; j < noOfCells; j++) {
var cellVal = cells.item(j).innerHtml;
alert(cellVal);
}
}
};
$('#partialViewContainer').on('click', 'table tr', getTableContents);
});
</script>
您好 每次在表中单击一行时,我都试图调用函数getTableContents。但是,上面粘贴的代码我得到一个错误:“未捕获的错误:userdefined不是函数。”
任何人都知道为什么会这样?
答案 0 :(得分:3)
错误是因为你没有定义变量&#34; getTableContents&#34;在传递给&#34; on&#34;方法。将getTableContents变量声明移到调用&#34; on&#34;上方。方法你应该好好去。
答案 1 :(得分:2)
尝试使用&#34;函数getTableContents(){}&#34;代替。
答案 2 :(得分:1)
更换 $(&#39; #partViewViewContainer table tr&#39;)。on ... 到
$('#partialViewContainer table tr').click(function(){
getTableContents();
});
js函数中的参数是可选的。
答案 3 :(得分:1)
我在这两个变化之后才开始工作:
function getTableContents() { ... }
var cells = table.rows[i].cells;
如果在绑定后声明函数,则需要以这种方式定义它。
在它之后,它抱怨table.rows.items
不是一个功能。我将其更改为table.rows[i]
并且确实有效。
答案 4 :(得分:1)
在这里,您尝试将函数作为变量名称传递给click事件上的回调函数。但在使用变量之前,您必须声明它。在使用之前,您没有定义变量。