2010-03-01 171 views
7

這些是一些簡單的JS代碼,它允許我檢查單元格是否爲空。使用JavaScript檢查HTML表格單元格是否爲空?

我試圖編寫一個函數,使用「onmouseover = func()」調用;我似乎無法得到正確的JS代碼。有任何想法嗎?

什麼即時通訊理想地努力工作是一個代碼,可以確定一個單元格是否爲空,如果是這樣,放置一個簡單的值,如「單元格空」。

我知道這可能聽起來很簡單,但我可以使用一點幫助。 感謝您的任何想法。

回答

2

如果您使用jQuery,請在元素上使用html()方法。鑑於這種標記:

<td id="my_cell"></td> 

此代碼將做到這一點:

if ($('#my_cell').html() == '') { 
    $('#my_cell').html('Cell Empty'); 
} 
+0

這個問題沒有提及的jQuery所以這不回答這個問題。 – cletus 2010-03-01 23:22:44

+1

如果您使用的是jQuery,則需要使用'.html()'而不是'.innerHTML'。 – Aistina 2010-03-01 23:23:01

+0

糟糕,你是對的。編輯爲html()。 – 2010-03-02 01:55:45

3

這取決於將在那裏開始一個多小。根據我的經驗,如果一個單元格只包含空格,表格的行爲會很奇怪,所以常用的解決方法是在其中放入一個&nbsp;以阻止它摺疊。總之,這裏的你如何檢查:

function elementIsEmpty(el) { 
    return (/^(\s|&nbsp;)*$/.test(el.innerHTML); 
} 

function replaceCell(td) { 
    if (elementIsEmpty(td)) { 
     td.innerHTML = 'Cell Empty'; 
    } 
} 


<td onmouseover="replaceCell(this)"></td> 

...雖然是更好的方式是通過JavaScript事件處理應用的行爲。

+0

這種奇怪的行爲只適用於IE6/7。它不會渲染整個單元格,包括其標記。通常首先會注意到缺少邊框或背景顏色。 – BalusC 2010-03-01 23:24:56

1

withouth的jQuery的(像在舊時光):

function func(e){ 
    var target = window.event ? window.event.srcElement : e ? e.target : null; 
    if (target.innerHTML === ''){ 
     target.innerHTML = 'Cell Empty!'; 
    } 
} 
+1

先生,你有一個奇怪的「好」的定義。 – nickf 2010-03-02 00:22:33

+1

先生,我覺得你無法理解諷刺意見。 – Matias 2010-03-02 12:33:59