Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.07.2017, 18:49
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

Подсчет символов в <th></th>
Доброе время суток. Подскажите как посчитать количество символов (включая пробелы) в Ячейках 2 и 4. И если эта сумма будет превышать больше 10 символов, эти ячейки буду закрашены красным цветом.
<table class="form-table from-table_size_sm">
<tbody>
<tr><th style="width: 150px;">Ячейка 1</th><td><div class="model-value">123456</div></td>
<td class="form-table__gutter">&nbsp;</td><th>Ячейка 2</th><td><div class="model-value">78 9456 123</div></td>
<td class="form-table__gutter">&nbsp;</td></tr><tr><th style="width: 150px;">Ячейка 3</th><td><div class="model-value">а б вг-д</div></td>
<td class="form-table__gutter">&nbsp;</td><th>Ячейка 4</th><td><div class="model-value">11-11-11</div></td></tr>
</tbody>
</table>
Ответить с цитированием
  #2 (permalink)  
Старый 25.07.2017, 19:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Куда пропала ячейка во второй строке?

$('.form-table tr').children(':nth-child(4)').css('background-color', function() {
    return this.textContent.length > 10 ? '#f00' : '#fff'
})
Ответить с цитированием
  #3 (permalink)  
Старый 25.07.2017, 19:47
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

Сообщение от laimas Посмотреть сообщение
Куда пропала ячейка во второй строке?

$('.form-table tr').children(':nth-child(4)').css('background-color', function() {
    return this.textContent.length > 10 ? '#f00' : '#fff'
})
Вроде все на месте. У меня есть массив данных, как мне найти именно в группах <th>Ячейка 2</th> и <th>Ячейка 4</th>? Для этого примера хорошо подходит, но мне нужно более универсальное.
Ответить с цитированием
  #4 (permalink)  
Старый 25.07.2017, 19:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Sayler91
Вроде все на месте.
Точно? В первой строке 6 ячеек, во второй 5. Код написан так небрежно, что черт ногу сломает, что-то не доглядеть просто.

Сообщение от Sayler91
но мне нужно более универсальное
А что значит универсальное? Код не сможет догадаться чего от него хотят, пока ему конкретно не описать задачу.
Ответить с цитированием
  #5 (permalink)  
Старый 25.07.2017, 20:12
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

Извините, но я не до конца понимаю. Я сохранил этот код в html формате и получил 8 ячеек. Мне же нужно посчитать "78 9456 123" и "11-11-11", а они находятся в группе "Ячейка 2" и "Ячейка 4" соответственно.Как искать по коду именно <th>Ячейка 2</th> и <th>Ячейка 4</th>? Простите мою неосведомленность
Ответить с цитированием
  #6 (permalink)  
Старый 25.07.2017, 21:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Sayler91
Мне же нужно посчитать "78 9456 123" и "11-11-11", а они находятся в группе "Ячейка 2" и "Ячейка 4" соответственно.
А что есть группа? Есть для таблиц colgroup, это можно определить, а по каким критериям можно понять, что некая запись в какой-то ячейке (или сама ячейка) определяет группу из N ячеек? Да еще и о универсальности речь шла.
Ответить с цитированием
  #7 (permalink)  
Старый 25.07.2017, 21:37
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

<body>
    <table class="form-table from-table_size_sm">
<tbody>
<tr>
	<th>Имя</th><td><div class="model-value">Иван</div></td>
	<td class="form-table__gutter">&nbsp;</td><th>Имя (лат.)</th><td><div class="model-value">IVAN</div></td>
</tr>
<tr>
	<th>Фамилия</th><td><div class="model-value">Иванович</div></td>
	<td class="form-table__gutter">&nbsp;</td><th>Фамилия на лат.</th><td><div class="model-value">Ivanovich</div></td>
</tr>
</tbody>
</table>


Вот еще пример html. Можно ли создать такое условие? Если в <tr> есть <th> с текстом "Имя", то берется значение <td>.
Ответить с цитированием
  #8 (permalink)  
Старый 25.07.2017, 22:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

$('th:contains("Имя")').next()


В данном случае это будет коллекция из двух ячеек <td><div class="model-value">Иван</div></td> и <td><div class="model-value">IVAN</div></td>.
Ответить с цитированием
  #9 (permalink)  
Старый 26.07.2017, 05:33
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

Спасибо. Теперь я понял. Зная расположение ячеек, можно ли посчитать количество символов ячеек "Ivan" и "Ivanovich" и поставить условие если их количество будет превышать 10 они изменят цвет на красный?
Ответить с цитированием
  #10 (permalink)  
Старый 26.07.2017, 05:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну так сделать тоже самое, что и в первом случае, различие то только в селекторах.

$('th:contains("Имя")').next().css('background-color', function() {
    return this.textContent.length > 10 ? '#f00' : '#fff'
})


PS. textContent поддерживается не всеми браузерами, но это можно заменить на либо innerHTML, либо this.textContent заменить на $(this).text()

PPS. Нет, в данном случае innerHTML применить нельзя, так как он возвращает html содержимое, а ячейки имеют вложенный DIV.

Последний раз редактировалось laimas, 26.07.2017 в 05:58.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет количества символов Янковиц Элементы интерфейса 4 05.06.2017 11:15
Подсчет количества символов jquery zoOmer Общие вопросы Javascript 2 19.09.2014 18:58
Ширина поля input text в зависимости от количества символов rekon87 (X)HTML/CSS 7 14.06.2013 22:55
Редактор TinyMCE не отправляет много русских символов cobria2 Общие вопросы Javascript 0 09.05.2011 00:46
Подсчёт символов в форме (Sandr) Элементы интерфейса 8 15.10.2010 18:52