簡體   English   中英

如何在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行字符24

 document.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM