Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выделение определенного чекбокса через поиск. (https://javascript.ru/forum/misc/73443-vydelenie-opredelennogo-chekboksa-cherez-poisk.html)

рони 19.04.2018 16:21

Цитата:

Сообщение от jfox
как сделать вывод в консоль тех артикулов, которые он не отметил, плюс сколько количество отмеченных чекбоксов.

пост №3 строка 70.

laimas 19.04.2018 16:26

jfox,
а к чему эти мытарства, почему не сделать артикул и флажок единым целым? Какой смысл прятать флажок и упорно решать проблемы?

jfox 20.04.2018 21:47

Цитата:

Сообщение от laimas (Сообщение 483637)
jfox,
а к чему эти мытарства, почему не сделать артикул и флажок единым целым? Какой смысл прятать флажок и упорно решать проблемы?

А вот это уже вопрос не ко мне, а к самой CMS. Там так сделано. Вообще скрипт получился от части рабочим. Чекбокс там для визуализации по идеи. Когда отмечаешь его то он... не отмечается)) Мне еще пришлось дописать параметр для добавления класса.

laimas 20.04.2018 23:14

Цитата:

Сообщение от jfox
А вот это уже вопрос не ко мне, а к самой CMS. Там так сделано.

А что сложно самому дописать человечески, вы же правите и добавляете свое. Что сложно сделать так:

<td class="min-width drag-handle"><input id="6636" type="checkbox"></td>
<td class="s-product-col-sku" title="Код артикула"><label for="6636">21400</label></td>

а класс просто переключать toggle?

jfox 12.07.2018 09:59

Цитата:

Сообщение от рони (Сообщение 483635)
пост №3 строка 70.

Я имел ввиду вывести те артикулы, которые он не отметил из моего списка артикулов(помещаемые в массив). В вашем коде он выводит вообще все не отмеченные артикулы со страницы.

рони 12.07.2018 10:16

Цитата:

Сообщение от jfox
Я имел ввиду вывести те артикулы, которые он не отметил из моего списка артикулов.

Цитата:

Сообщение от jfox
Задача в том, чтобы выделить определенные чекбоксы, в зависимости от артикула.

не понимаю

Dilettante_Pro 12.07.2018 10:58

Цитата:

Сообщение от jfox
не отметил из моего списка артикулов(помещаемые в массив)

М.б. артикулы из массива, которых нет на странице?

jfox 12.07.2018 12:27

Цитата:

Сообщение от рони (Сообщение 489513)
не понимаю

Цитата:

Сообщение от рони (Сообщение 489513)
не понимаю

На сайте куча артикулов, но мне нужно отметить только некоторые из них. Те, которые я хочу отметить я указываю в prompt. Проблема в том, что некоторых артикулов может не оказаться на сайте и именно эти артикулы мне нужно, чтобы выводило в лог.

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

Например Велосипед 1 имеет артикулы 20400(красный цвет) и 20452(синий цвет). Я добавляю в prompt два этих артикула, но чекбоксом он отметит мне только 20400, а 20452 он(скрипт) пропустит, потому что не сможет найти. И вот скрипт в логах должен мне указать, что артикул с номером 20452 не отметился. Только вот таких артикулов бывает много.

Забегу вперед и отвечу на вопрос "А зачем тебе отмечать 20452, если он находится внутри товара с 20400 артикулом и уже считается отмеченным?"

Ответ: Велосипед 2 имеет первый артикул 0001, а второй 0005. Мне нужен 0005 и я его добавляю в prompt, однако 0001 я не добавляю, потому что я вообще знать не знаю, что 0005 сидит в 0001.

Как-то так.

рони 12.07.2018 12:53

jfox,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .yellow {
       background-color: #FFFF00;
  }
  .info {
      color: #FF0000;
  }

  </style>


</head>

<body>
<table>
    <tbody>
        <tr>
            <th class="min-width"><input type="checkbox" class="s-select-all" data-count="6116"></th>
            <th>Код артикула</th>
            <th>Название</th>
            <th>Цена</th>
            <th>В наличии</th>
        </tr>
        <tr class="product ui-droppable ui-draggable" data-product-id="6636">
            <td class="min-width drag-handle"><input type="checkbox"></td>
            <td class="s-product-col-sku" title="Код артикула">21400</td>
            <td class="drag-handle s-product-name">Велосипед</td>
            <td title="Цена">50000</td>
            <td title="В наличии">5</td>
        </tr>
        <tr class="product ui-droppable ui-draggable" data-product-id="6637">
            <td class="min-width drag-handle"><input type="checkbox"></td>
            <td class="s-product-col-sku" title="Код артикула">21401</td>
            <td class="drag-handle s-product-name">Велосипед</td>
            <td title="Цена">12000</td>
            <td title="В наличии">5</td>
        </tr>
        <tr class="product ui-droppable ui-draggable" data-product-id="6638">
            <td class="min-width drag-handle"><input type="checkbox"></td>
            <td class="s-product-col-sku" title="Код артикула">21402</td>
            <td class="drag-handle s-product-name">Велосипед</td>
            <td title="Цена">60000</td>
            <td title="В наличии">5</td>
        </tr>
        <tr class="product ui-droppable ui-draggable" data-product-id="6639">
            <td class="min-width drag-handle"><input type="checkbox"></td>
            <td class="s-product-col-sku" title="Код артикула">21403</td>
            <td class="drag-handle s-product-name">Велосипед</td>
            <td title="Цена">13300</td>
            <td title="В наличии">5</td>
        </tr>
        <tr class="product ui-droppable ui-draggable" data-product-id="6640">
            <td class="min-width drag-handle"><input type="checkbox"></td>
            <td class="s-product-col-sku" title="Код артикула">21404</td>
            <td class="drag-handle s-product-name">Велосипед</td>
            <td title="Цена">33200</td>
            <td title="В наличии">5</td>
        </tr>
    </tbody>
</table>
<p class="info"></p>
<script>
var a = ["21401","21403","21404", "20400", "20452"], b = [], err;
[].forEach.call(document.querySelectorAll('.product'), function(tr) {
var td = tr.querySelector('.s-product-col-sku');
var kod = td.textContent.trim();
var checked = ~a.indexOf(kod);
checked && b.push(kod);
tr.querySelector('input').checked = checked;
td.classList[checked ? 'add' : 'remove']("yellow")
});
err = a.filter(function(e) {
   return b.indexOf(e) == -1
})
document.querySelector('p.info').innerHTML = err

  </script>
</body>
</html>

jfox 12.07.2018 14:17

рони, в коде более-менее разобрался и подстроил под себя.
Благодарю за помощь.


Часовой пояс GMT +3, время: 09:41.