2016-12-06 1 views
0

В моем коде у меня есть таблица, в которой я хотел бы применить этот стиль:Как применить стиль CSS в JavaScript для идентификатора генерируется во время выполнения

#tableDiv tr:nth-child(even) { 
    background-color: grey; 
} 

В ид приведенный выше код Див, как известно (это tableDiv). В моем проекте id div генерируется во время выполнения, и это некоторая случайная строка. Как применить стиль в javascript-коде. Допустим, я сгенерировал идентификатор моего Див как это:

mContainer = document.createElement("div"); 
newId = divIdGenerator(); 
mContainer.setAttribute("id", newId); 

Что я должен делать дальше, чтобы применить свой стиль?

+1

С классом вместо этого? Вы можете выбрать элемент только с помощью CSS, зная селектор. Если вы не знаете идентификатор, можете ли вы не нацелить его родителей? –

+0

Вы просто хотите, чтобы полоса зебры для ваших рядов строк? т.е. серый для четного и белого для нечетных (например). Затем, однако, многие строки добавляются в таблицу, они всегда будут чередующимися полосами. Если это так, просто простая проблема css, нет необходимости в javascript. Если нет, вам может потребоваться предоставить больше html или рабочий пример. Что делает 'divIdGenerator();' например, например. – lharby

ответ

2

Вы должны использовать класс CSS

var mContainer = document.createElement("div"); 

//adds class "table-div" to element 
mContainer.classList.add('table-div'); 
.table-div tr:nth-child(even) { 
    background-color: grey; 
} 
+0

Почему это запущенный фрагмент? – connexo

+1

Простое и отличное решение. Я полностью забыл о занятиях и сосредоточился на использовании id. Большое спасибо. – Loreno

-1

Добавьте класс CSS, который делает это для вас:

.striped-table tr:nth-child(even) { 
    background-color: grey; 
} 

, а затем добавить класс к ClassList:

mContainer.classList.add("striped-table"); 
+0

Зачем кому-то делать это? – connexo

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