Javascript.RU

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

Поиск по тексту нужных ячеек таблицы и активация чекбокса
Есть такая табличка
<table class="table_s">
<tbody>
<tr><td><input type="checkbox"></td> <td>950</td></tr>
<tr><td><input type="checkbox"></td><td>100 Йо-хо-хо!</td></tr>
<tr><td><input type="checkbox"></td><td>299 и бутылка рома!</td></tr>

... и т.д.

Я хочу запустить простой JS в консоли Хрома, который бы искал в таблице текст с заданными через запятую кусками текста (например: "100", "299", Йо-хо", "992") и при совпадении, отмечал чекбоксы соответствующие найденному пункту. Вместо запятой можно использовать любой другой разделитель или же логическое "или" - не суть.
Касательно логики алгоритма, вроде всё просто: Ищем в правом <td> некий набор символов. Если что-то из заданного через запятую совпадает, то делаем "checked" у чекбокса в левом <td>. Но я не знаю, как делать выборку неидентифицированных элементов и т.д.

Никаких идентификаторов строки и столбцы таблицы не имеют. Их много, разного количества строк, но структура одинакова: Слева чекбокс, справа текст с описанием пункта
Нужен чистый JS без всяких jQuery.
Помогёте?

Последний раз редактировалось khameleonium, 18.05.2021 в 08:13.
Ответить с цитированием
  #2 (permalink)  
Старый 18.05.2021, 10:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

khameleonium,

<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>
<body>
    <table class="table_s">
        <tbody>
            <tr>
                <td><input type="checkbox"></td>
                <td>950</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>100 Йо-хо-хо!</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>299 и бутылка рома!</td>
            </tr>
        </tbody>
    </table>
    <script>
        const words = "100,299,Йо-хо,992",
            table = document.querySelector(".table_s")
        function checkedWords(words, table) {
            words = words.split(",");
            const inputs = table.querySelectorAll("[type='checkbox']");
            inputs.forEach(el => {
                let next = el.parentNode.nextElementSibling;
                if (next) {
                    let text = next.textContent;
                    el.checked = words.some(word => text.includes(word))
                }
            })
        }
        checkedWords(words, table)
    </script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по тексту с нескольких input grigori jQuery 3 09.05.2021 11:20
jQuery Поиск ячеек в таблицы в цикле Hur_ley Общие вопросы Javascript 2 05.10.2016 16:06
поиск ссылки по тексту, который расположен между тагом <a> gpg10 jQuery 7 09.11.2014 21:58
Вопрос по ширине ячеек таблицы demoniqus Общие вопросы Javascript 4 02.02.2014 13:19
IE 8: баг при динамическом display=none; у ячеек таблицы SegaMega Элементы интерфейса 0 21.09.2012 06:47