2013-03-19 5 views
0

У меня есть таблица с конкретным столбцом, где ячейки содержат только «R», «N» или «Y». Я хочу покрасить строку на основе любого из указанных значений. Любые советы будут полезныСтрока цвета на основе значения ячейки

Вот что у меня есть, но его не меняя цвета строки

var rows = document.getElementById("trans_separate").getElementsByTagName("tbody") 
    [0].getElementsByTagName("tr"); 

    // loops through each row 
    for (i = 0; i < rows.length; i++) {cells = rows[i].getElementsByTagName('td'); 

      if (cells[14].innerText == R) 
       rows[i].className = "red"; 

      else if (cells[14].innerText == Y) 
       rows[i].className = "Yellow"; 

      else if (cells[1].innerText == N) 
       null 

} 
+1

'если (клетки [14] .innerText == 'R') ...' – inser

+0

Консоль должна быть направлена ​​вам прямо к ответу. Если вы планируете работать с Javascript, важно научиться пользоваться консолью и отладчиком Chrome или FireBug. – mawburn

+0

Вам действительно нужно забрать tbody, а затем tr, а затем ячейки? Я полагаю, что document.getElementById ("trans_separate"). GetElementsByTagName ('td') 'будет достаточно, чтобы получить все нужные вам ячейки. – lupatus

ответ

-2

Рабочий пример:

var rows = document.getElementById("trans_separate").getElementsByTagName("tbody") 
    [0].getElementsByTagName("tr"); 

    // loops through each row 
    for (i = 0; i < rows.length; i++) {cells = rows[i].getElementsByTagName('td'); 

      if (cells[0].innerHTML == 'R') 
       rows[i].className = "red"; 

      if (cells[0].innerHTML == 'Y') 
       rows[i].className = "yellow";   
} 

http://jsfiddle.net/mMFwQ/4/

+0

Уверен, что? –

+0

Это работает для меня. Не так ли? Проверьте jsfiddle – inser

+0

'if (cells [0] .textContent === 'R') rows [i] .className =" red ";' –

0

Работает в Firefox на Ubuntu: jsfiddle

ps Должно быть else-if. Если текст внутри - 'R', то вы не должны оценивать 'Y'.

var rows = document.getElementById("trans_separate").getElementsByTagName("tbody")[0].getElementsByTagName("tr"); 

for (i = 0; i < rows.length; i++) { 
    row = rows[i].getElementsByTagName('td'); 
    var cell = getText(row[0]); 
    if (cell === 'R') rows[i].className = "red"; 
    else if (cell === 'Y') rows[i].className = "yellow"; 
} 

function getText(cell) { 
    return (cell.innerText == undefined) ? cell.textContent : cell.innerText; 
} 
Смежные вопросы