2011-06-22 42 views
1

如何捕獲對象爲null或不是對象。其實我已經寫了這條線,如果條件解決它,但不工作。在js中捕獲null對象

但生成錯誤: - 「對象爲空或不是對象」

var preWynum = ""; 
function paint(Wynum) 
{ 
    // alert("Wynum:"+Wynum +", preWynum:"+preWynum); 
    if(document.getElementById(preWynum) && document.getElementById(Wynum)) 
    { 
     document.getElementById(preWynum).style.backgroundColor='white'; 
     document.getElementById(Wynum).style.backgroundColor='yellow'; 
    } 

    preWynum = Wynum; 

} 

我不相信它爲什麼沒有運行。 有沒有其他想法?

preWynum和Wynum是tr(表格行)的id。

我想爲當前選定的行設置背景顏色爲黃色(即id爲Wynum)。

+0

是否錯誤任何機會了'if'子句中發生的呢? – pimvdb

+0

'preWynum'似乎是空的......如果你將一個空字符串傳遞給'getElementById',你會得到'null'。 –

+0

@Felix Kling如果它的null或empty then條件應該是false,但不是。 – Bajrang

回答

4

的錯誤是因爲你傳遞一個對象(不存在),以getElementById(),當它需要一個字符串:

// Put quotes around 'preWynum' and 'Wynum' 
if(document.getElementById('preWynum') && document.getElementById('Wynum')) 
{ 
    document.getElementById('preWynum').style.backgroundColor='white'; 
    document.getElementById('Wynum').style.backgroundColor='yellow'; 
} 
+1

其實preWynum和Wynum是變量。它們的值已在函數中傳遞...:) - – Bajrang

+0

@ J.J。如果它們是變量,請向我們展示設置它們的代碼,因爲它可能是錯誤的。 –