请不要使用jQuery解决方案!我还在学习JavaScript。
我有一个函数可以根据给定的checkbox
控件分解一些DOM元素。
function highlightRow(chk) {
var cell = chk.parentNode;
var row = cell.parentNode;
var tbody = row.parentNode;
var rows = tbody.children;
var hrow = rows[0]; //get header row
--> var hCbox = hrow.getElementsByID("cbHDR"); //get 'cbHDR' checkbox that's in the header
if (chk.checked) {
addClass(row, 'selected-row');
}
else {
removeClass(row, 'selected-row');
}
..etc
}
我遇到的问题是显示的行......
var hCbox = hrow.getElementsByID(" cbHDR");
如何根据给定元素查找元素,例如在Gridview的HeaderRow中?
以上返回null。事实上,我甚至不知道它是否运行,因为我不确定getElementsByID()
是否纯粹是document
对象的方法。
我试图避免使用document.get ...因为它在我的情况下检索4个GridViews中的所有标题复选框。我正在尝试根据HeaderRow 找到Header复选框。
由于
答案 0 :(得分:1)
在纯javascript中,可以使用包含元素上的querySelector来按标记名称查找元素。因此,如果您已经获得了对gridview的dom元素的引用(例如,使用getElementById),则在名为gridView
的变量中捕获,则:
let headerRow = gridView.querySelector('HeaderRow');
BTW let
是es6语法。因此,如果您担心旧的浏览器兼容性,请改用var
。