如何在JAVASCRIPT中通过变量传递参数

如何在JAVASCRIPT中通过变量传递参数,javascript,optimization,google-closure-compiler,Javascript,Optimization,Google Closure Compiler,在高级模式下优化我的JS时,我收到了警告消息,但没有编译 JSC_类型_不匹配:的实际参数1 Document.prototype.getElementById与形式参数不匹配 my js函数更改div的类 for (kx = 1; kx <= 5;kx=kx+1) { document.getElementById(kx).className='newclass'; } for(kx=1;kxClosure希望您将字符串传递给文档。而不是数字 JSC_类型_不匹配:的实际参数1

在高级模式下优化我的JS时,我收到了警告消息,但没有编译

JSC_类型_不匹配:的实际参数1 Document.prototype.getElementById与形式参数不匹配

my js函数更改div的类

for (kx = 1; kx <= 5;kx=kx+1) {
document.getElementById(kx).className='newclass';
    }

for(kx=1;kxClosure希望您将
字符串
传递给
文档。
而不是
数字

JSC_类型_不匹配:的实际参数1 Document.prototype.getElementById与形式参数不匹配
找到:编号
必需:第3行的字符串
字符24

document.getElementById(kx).className='newclass';
因此,显式地将
kx
转换为
字符串应删除该警告:

for (kx = 1; kx <= 5; kx++) {
    document.getElementById(kx.toString()).className='newclass';
}

<代码>(kx=1;kx i)会认为这是关闭中的一个错误,因为您所做的将在一个实际的浏览器中运行得很好。PROTHML5规范认为“ID”属性应该是有效标识符,但在HTML5(以及所有现代浏览器中)事实并非如此-任何没有嵌入空格的字符串都是有效的。@Pointy我认为它与的关系更大。@canon是的,我同意,但我的观点是警告只是噪音,因为(正如您所注意的)代码可以工作。
for (kx = 1; kx <= 5; kx++) {
    document.getElementById(kx.toString()).className='newclass';
}