我有一个GridView,它有一个复选框和一个“onClick”函数“VerifyChecked”,它附加到Grid的行数据绑定事件中的每个checbox上。
在我的Javascript中,函数体如下所示
function VerifyChecked() {
var gv = document.getElementById('ctl00_ContentPlaceHolder1_grdProductNotes');
var btn = document.getElementById('ctl00_ContentPlaceHolder1_btnAdd');
var btn2 = document.getElementById('ctl00_ContentPlaceHolder1_btnAdd1');
btn.disabled = true;
btn2.disabled = true;
var strEnabled;
var strPk = '';
var strSeq = '';
var count = 0;
for (i = 1; i < gv.rows.length; i++) {
var row = gv.rows[i];
var ckbox = row.cells[0].getElementsByTagName('input')
if (ckbox[0].checked) {
btn.disabled = false;
btn2.disabled = false;
count = count + 1;
var pk = row.cells[0].all[2].innerText;
应用程序在Internet Explorer版本10中不会引发任何错误。 但是在版本11和chrome中,当我检查控制台时。我收到以下错误。
“UnCaught TypeError:无法读取未定义的属性2”
导致错误的行是
var pk = row.cells[0].all[2].innerText;
编辑1:
我发现“Object.all”属性现在已经过时,因为我收到错误。但是现在我无法访问所有集合的元素。有没有解决方法来实现这个目标?
答案 0 :(得分:0)
您可以使用children
或childNodes
集合:
var pk = row.cells[0].children[2].innerText;
var pk = row.cells[0].childNodes[n].innerText;
请注意,childNodes
还包含文本节点。因此,元素的索引可能与过时的all
属性不同。