列单元格为空时的条件逻辑

时间:2013-01-22 16:47:09

标签: javascript

如果column2单元格不包含值或空单元格,我想循环遍历表格中的行并仅执行更改背景颜色。这就是我现在所拥有的,但我的所有行都是彩色的,我只需要在column2中的单元格为空时应用逻辑。

JS:

// loops through rows
for (var i = 0; rows; rows = tbody.rows[i]; i++) {
    //loops through cells
    for (var j = 1; col; col = rows.cells[j]; j++) {
        //gets cells of current row
        cells = rows[i].getElementsByTagName('td');
        //gets cells of col 1
        ocells = rows.cells[j].getElementByTagName('td');

        while (rows.cells[j] === null) {
            //condition here>>
        }
    }
}

HTML:

<div id="table">
    <table name="tbody" id="tbody1">
        <tr> 
            <td>col1 Val1</td>
            <td>col2 Val2</td>
        </tr>
        <tr>
            <td>col1 Val3</td>
            <td>col2 Val4</td>
        </tr>
    </table>
</div>

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

我会重新考虑循环所有事情的必要性:

如果您创建了表(或生成了表),请在第2列的每个单元格中添加一个类。

让我们称这个类:“column-2-cell”

现在使用jQuery:

$('.column-2-cell:empty').addClass('empty');

看到这个小提琴:http://jsfiddle.net/Ubz6w/

您也可以选择使用jQuery:

$('tr').each(function(i) {
    var column2cell = $($(this).children('td')[1]);
    if (column2cell.text() == "") {
        column2cell.css('background-color', 'red');        
    }
});

看到这个小提琴:http://jsfiddle.net/Ubz6w/1

希望这有帮助!

答案 1 :(得分:0)

请使用此功能。如果它为空,这将设置第二个column的背景。

var tbody = document.getElementsByName("tbody")[0];

for (var i = 0, rows; rows = tbody.rows[i]; i++) {
    if(rows.cells[1].innerHTML == "") {
        rows.cells[1].className += "highlight";
    }
}

Live Demo