【发布时间】:2015-02-25 04:36:48
【问题描述】:
我只是发现 document.getElementsByClassName() 不适用于 IE8。出于这个原因,我想使用 document.querySelectorAll(),但我真正的问题是类名出现在一个变量中,并且无法获得函数的结果。像这样:
var linea = document.querySelectorAll(revisados[i].value);
我的函数是由 onchange(value) 的复选框触发的,并且在执行时检查 querySelectorAll 的参数值失败。我试过了:
<input type="checkbox" value="1" onchange="javascript:name(this)" />
该值是许多其他元素的类。 还有 JS:
function name(param){
var className=param.value;
var class2 = "."+class;
var linea = document.querySelectorAll("."+param); //doesn't work
var linea = document.querySelectorAll("."+className); //doesn't work
var linea = document.querySelectorAll("."+className.value); //doesn'twork
var linea = document.querySelectorAll(class2); //doesn'twork
var linea = document.querySelectorAll(String(class)); //doesn't work
}
请有任何建议。非常感谢。
【问题讨论】:
-
我不知道这是否是故意的,但您输入的是
onchage而不是onchange。此外,您不能使用class作为javascript 变量名,因为它会产生Uncaught SyntaxError: Unexpected reserved word。 -
仅供参考,您的内联事件处理程序中的
javascript:部分是完全没有必要的。我建议删除它,以免散布它是必需的错误印象。 -
这不是故意的错误。我知道“class”是一个保留字,试着清楚地表达我的问题。这不是我真正的功能的代码,只是一个例子。
-
@h3g0r_:我们应该如何区分实际代码中的问题和示例中的问题?一个例子应该只复制你的实际问题,而不是引入新问题。
-
你为什么还要尝试使用
document.querySelectorAll("."+param);?你对连接一个 DOM 元素和一个字符串有什么期望?document.querySelectorAll("."+className.value);类似。字符串没有value属性。我觉得你会从更新一些 JS 基础知识中受益。我的意思是,尝试一下是好的,但似乎你盲目地尝试了每一种可能的组合。也许退后一步阅读一些文档:developer.mozilla.org/en-US/docs/Web/API/Document/…
标签: javascript internet-explorer