Я получаю предупреждающее сообщение и не скомпилирован при оптимизации моего JS до closure-compiler в расширенном режиме.Как передать параметр по переменной в JAVASCRIPT
JSC_TYPE_MISMATCH: фактический параметр 1 из Document.prototype.getElementById не соответствует формальному параметру
моих JS функции для изменения класса для DIV
for (kx = 1; kx <= 5;kx=kx+1) {
document.getElementById(kx).className='newclass';
}
в HTML I содержит пять DIV следующим образом
<div id='1' class ='first'> contents </div>
<div id='2' class ='first'> contents </div>
<div id='3' class ='first'> contents </div>
<div id='4' class ='first'> contents </div>
<div id='5' class ='first'> contents </div>
этот код работает в нормальном случае (без сжатия/оптимизации), но при попытке оптимизировать его, показывая предупреждение/ошибку, как я могу его исправить?
Я считаю это ошибкой в Closure, потому что то, что вы делаете, будет отлично работать в реальном браузере. В пред-HTML5-спецификациях утверждалось, что свойства «id» должны быть действительными идентификаторами, но в HTML5 (и во всех современных браузерах) это не так - любая строка без встроенных пространств действительна. – Pointy
@Pointy Я думаю, что это больше связано с [типом аргумента] (http://stackoverflow.com/a/29539934/621962). – canon
@canon Да, согласен, но я хочу сказать, что предупреждение - это просто шум, поскольку (как вы заметили) код будет работать. – Pointy