![](/img/trans.png)
[英]How to pass a global variable as parameter by reference in javascript
[英]How to pass parameter by variable in JAVASCRIPT
我在高級模式下通過閉包編譯器優化我的JS時收到警告消息,但未編譯。
JSC_TYPE_MISMATCH:Document.prototype.getElementById的實際參數1與形式參數不匹配
我的js函數更改div的類
for (kx = 1; kx <= 5;kx=kx+1) {
document.getElementById(kx).className='newclass';
}
在HTML中我有五個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希望您將string
傳遞給document. getElementById()
document. getElementById()
而不是number
。
JSC_TYPE_MISMATCH:Document.prototype.getElementById的實際參數1與形式參數不匹配
找到:號碼
必需:字符串
在第3行字符24document.getElementById(kx).className='newclass';
因此,將kx
顯式轉換為string
1應該刪除該警告:
for (kx = 1; kx <= 5; kx++) {
document.getElementById(kx.toString()).className='newclass';
}
不過,我不知道我會打擾。 原始文件實際上可以編譯。 您得到警告而非錯誤(我懷疑),因為數字參數將被簡單地強制轉換為字符串。 就是說,如果您的環境向錯誤提示警告,則一定要跳過去。
1值得注意的是,您可以通過簡單地將一個空字符串(例如: ''+kx
)連接起來並允許類型強制執行其操作來將數字轉換為字符串。 我選擇使用Number.prototype. toString()
Number.prototype. toString()
因為出於示例的目的,方法調用更清楚地說明了意圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.