2015-01-14 5 views
0

В javascript-коде я динамически добавляю строки в таблицу. Для каждого вызова добавляется еще одна строка. Основываясь на длине таблицы, как я должен реализовать .insideHTML для цвета ячейки. Таблица определяется в HTML, какКак изменить фон строки таблицы в javascript?

<table id="myTableData" border="1" cellpadding="2" width = "100%"> 
    <tr bgcolor="#FF0000"> 
      <th>Delete</th> 
      <th>Word</th> 
      <th>Meaning</th> 
      <th>Date Added (dd/mm/yyyy)</th> 
    </tr> 

    </table> 

JavaScript (.js) имеет код для добавления одной строки по:

var table = document.getElementById("myTableData"); 

var row = table.insertRow(rowCount); 

    row.insertCell(0).innerHTML= '<input type="button" value = "Delete" onClick="Javacsript:deleteRow(this)">'; 
    row.insertCell(1).innerHTML= "Hello"; 
    row.insertCell(2).innerHTML="World"; 
    row.insertCell(3).innerHTML="."; 

Моя первая попытка была вызвать целый ряд по:

row.style.backgroundColor = '0000FF';

Еще одна попытка, чтобы использовать это за пределами .js файл

var tableElements = document.getElementById("myTableData"); 
for(var j = 0; j < tableElements.length; j++) 
{ 
    var tableCells = tableElements[j] ; 

    var rows = tableCells.getElementsByTagName("tr") ; 

    rows.style.backgroundColor = "red"; 

} 
+1

Зачем вам нужен JavaScript, чтобы установить фоновый цвет? Почему бы вам просто не использовать css для таргетинга на строку таблицы? – tabz100

+0

Возможный дубликат [Как изменить цвет фона ячейки в таблице с помощью java-скрипта] (http://stackoverflow.com/questions/11517150/how-to-change-background-color-of-cell-in-table-using -java-script) – VMAtm

+0

Ваш фон 'tr' переопределяется' td' backbround – VMAtm

ответ

1

Ну ваша вторая попытка оказалась неудачной из-за этого:

From MDN:

Метод

Element.getElementsByTagName() возвращает живой HTMLCollection элементов с указанным именем тега.

Так что установка коллекции в стиле не работает, вам нужно будет ее закодировать и установить в отдельные элементы коллекции.

var rows = tableCells.getElementsByTagName("tr") ; 
for (var i=0; i<rows.length; i++) { 
    rows[i].style.backgroundColor = "red"; 
} 

Но если установить его непосредственно при создании строки является ошибкой, у вас есть проблема CSS. Лучшим решением является использование классов

CSS:

row.error td { background-color: red; } 

Так что теперь установить класс в вашем JavaScript

row.classList.add("error"); 

или

row.className = "error"; 
+0

Оба способа изменения цвета фона не работают. Следует отметить, что каждая строка добавляется вызовом функции с помощью кнопки. Таким образом, javascript woult должен изменить сортировку строк после данных, введенных 'row.insertCell (2) .innerHTML =« World »;' –

Смежные вопросы