我的一些输入元素有onclick =" setSomeFunction()"显示或隐藏以下几个div。
我可以通过找到输入元素 document.getElementsByTagName("输入&#34) 并把它们放在一个数组中。 但我想只获得" onclick"输入另一个数组。
我发现你可以测试.class,(例如)
if (document.getElementById("someId").class == "block" )
但似乎没有相应的" .onclick"?或者我的代码是否因为某些输入元素根本没有onclick事件而失败?
function consoleInputs() {
var inputs = document.getElementsByTagName("input"); //finds all the input elements
console.log(inputs); //list all the inputs
var hasClick; // store all the inputs WITH onclick event here
var loop = inputs.length; // max rounds in the loop
var i;
for (i = 0;i <= loop ;i += 1){
if ((document.getElementById("inputs[i]").onclick) == ("set"+"*")) {
hasClick = hasClick + inputs[i]
}
}
console.log(hasClick);
}
我尝试了不同的if语句,但没有运气,真的......我一直在收到错误
未捕获的TypeError:无法读取属性&#39; onclick&#39;为null
我还没有充分了解jQuery,所以请避免。
答案 0 :(得分:2)
JavaScript具有与jQuery非常相似的选择器功能。
因此,您可以通过
获取具有onClick属性的所有输入document.querySelectorAll('input[onClick]')
将返回已定义onClick属性的输入元素数组。
CSS还有startsWith选择器,因此您可以使用此
获取以set
开头的onclick属性
document.querySelectorAll('input[onClick^="set"]')