Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.10.2020, 14:57
Новичок на форуме
Отправить личное сообщение для demiancz Посмотреть профиль Найти все сообщения от demiancz
 
Регистрация: 10.10.2020
Сообщений: 2

Изменить класс в зависимости от содержимого ячейки
Есть таблица
Код:
<table width="100%" border="1">
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Да</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Нет</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Нет</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Да</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Да</td>
  </tr>
</table>
Нужно поменять class"oprosresult" в зависимости от значения ячейки. то есть если в ячейке записано "Да", то нужно присвоить этой ячейке class"oprosresult-yes", а если в ячейке "нет", то - class"oprosresult-no"

Я в JS не силен.

Если логически, то понимаю, что нужно получить данные ячеек. Проверить их. И записать в переменную. А потом эту переменную подставлять вместо class"oprosresult".

Нашел пример как получить значение ячейки
<div class="value">f</div>

Код:
<script>
var tar = document.querySelector('.oprosresult')
var val = document.querySelector('.value')
val.innerHTML = tar.innerHTML
 </script>
но так я получаю только значение одной ячейки

Последний раз редактировалось demiancz, 10.10.2020 в 15:02.
Ответить с цитированием
  #2 (permalink)  
Старый 10.10.2020, 15:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

У вас в html ошибка, после названия атрибута не стоит знак «=» (равно).

<table width="100%" border="1">
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Да</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Нет</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Нет</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Да</td>
  </tr>
  <tr>
    <td>Текст</td>
    <td class="oprosresult">Да</td>
  </tr>
</table>

<style>
.oprosresult-yes {
     color: green;
}

.oprosresult-no {
     color: red;
}
</style>

<script>
document.querySelectorAll('.oprosresult').forEach(node => {
     node.classList.add('oprosresult-' + (node.textContent === 'Да' ? 'yes' : 'no'));
});
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 10.10.2020, 15:08
Новичок на форуме
Отправить личное сообщение для demiancz Посмотреть профиль Найти все сообщения от demiancz
 
Регистрация: 10.10.2020
Сообщений: 2

Спасибо огромное
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ширина ячейки в зависимости от смежных ячеек и независимо от содержимого fedushok (X)HTML/CSS 6 20.10.2017 16:12
Изменить класс элемента в зависимости от разрешения экрана funfot (X)HTML/CSS 1 19.09.2014 20:15
Изменить класс родительского элемента STyLe Общие вопросы Javascript 1 29.05.2014 20:21
Как в общем меню для всех страниц поменять класс определенного пункта в зависимости о phenom Элементы интерфейса 2 08.04.2011 11:09
Как изменить размер <iframe> в зависимости от размера его содержимого Xslibris Events/DOM/Window 19 18.09.2010 14:52