Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:有没有一种方法可以像C#一样找到控件?_Javascript_C# - Fatal编程技术网

Javascript:有没有一种方法可以像C#一样找到控件?

Javascript:有没有一种方法可以像C#一样找到控件?,javascript,c#,Javascript,C#,请不要使用jQuery解决方案!我还在学习JavaScript 我有一个函数,它根据给定的复选框控件分解一些DOM元素 function highlightRow(chk) { var cell = chk.parentNode; var row = cell.parentNode; var tbody = row.parentNode; var

请不要使用jQuery解决方案!我还在学习JavaScript

我有一个函数,它根据给定的
复选框
控件分解一些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()
是否纯粹是
文档
对象的方法

我正在尝试避免使用文档。获取。。。在我的例子中,它检索4个GridView中的所有标题复选框。我正在尝试仅基于HeaderRow查找标题复选框。


感谢您在纯javascript中使用querySelector在包含元素上通过标记名查找元素。因此,如果您已经获得了对gridview的dom元素的引用(例如,使用getElementById),该引用在名为
gridview
的变量中捕获,那么:

let headerRow = gridView.querySelector('HeaderRow');

顺便说一句,let是es6语法。因此,如果您担心旧浏览器的兼容性,请改用
var

正确的方法是
document.getElementById(“cbHDR”)
。此外,如果您使用ASPX页面,请确保您具有静态客户端id,否则您需要使用
document.getElementById(“”
“事实上,我甚至不知道它是否运行,因为我不确定
getElementsByID()
是否纯粹是document对象的方法。”;它只在
文档上
。它的大写形式也不同。您可以通过查看浏览器的控制台了解这一点。更新的问题@tetsuyayamamoto您可以提供
GridView
标记详细信息吗?我发现您需要这样的东西:
var grid=document.getElementById(“”)然后使用
var headerCheckBox=tbl.rows[n].cells[n].getElementsByTagName(“输入”)[0].id(n=row/column index)获取标题复选框值。@tetsuyayayamamoto这正是我试图避免的-硬编码路径。我还是在下面回答。谢谢。我刚才也发现了那个鬼鬼祟祟的功能。querySelector()。谢谢