выберите ввод в первом td, когда второй td содержит слово

#javascript #html #jquery

#javascript #HTML #jquery

Вопрос:

У меня есть таблица с атрибутами, где каждый идентификатор tr имеет attribute_id. каждый tr содержит 6 td, тогда как первый td включает поле выбора ввода.

Я пытаюсь автоматизировать процесс выбора полей выбора ввода, когда третий td содержит определенное слово. Я пытался сделать это с помощью jQuery, но я не могу заставить его работать. Я не смог заставить два для каждой работы, так как у меня есть атрибуты, содержащие все разные идентификаторы.

Мой текущий код выглядит следующим образом:

 var id = 1;
while(id != 10000){
    jQuery('#attribute_ "   id   " > tbody > tr').each(function(index, value) {
        jQuery('# " id " > tbody > tr').each(function(index, value) {
            $('td:contains("metal")', td[1].select());
        });
    });
}
  

мой html-код:

 <tr class="combination loaded" id="attribute_7892" data="7892" data-index="7892" style="display: 
table-row;">
  <td width="1%">
                   //select this when contains metal
      <input class="js-combination" type="checkbox" data-id="7892" data-index="7892"> 
  </td>

  <td class="img"><img src="http://image" class="img-responsive"></td>

                   //contains metal:
  <td>Chain - plastic, left - right, skin - metal silver - V6, color - dark/gray</td>
  
  <td class="attribute-price">5.00</td>
</tr>
  

Комментарии:

1. Вы неправильно экранировали кавычки в своем contains бите…

2. ни в этом бите jQuery('#attribute_ id > tbody > tr') -> jQuery('#attribute_" id " > tbody > tr')

3. исправлено, по-прежнему не повезло

Ответ №1:

Основной процесс будет выглядеть следующим образом:

  1. Перебирайте каждый tr
  2. Проверьте, имеет ли tr id соответствующий ‘attribute_ [number]
  3. Проверьте td , содержит ли 3-й из tr них слово «металл»
  4. Установите checked true значение, если это так, в противном случае установите значение false .

Вот пример:

 var search = 'metal';
var rows = $('tr.combination.loaded');

rows.each(function(index, value) {
  if (/(attribute_)(d )/g.test(value.id)) {
    $(this).children(0).children(0).attr('checked', ($(this).children(2).text().indexOf(search) !== -1));
  };
});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table>
  <tr class="combination loaded" id="attribute_7892" data="7892" data-index="7892" style="display: 
table-row;">
    <td width="1%">
      //select this when contains metal
      <input class="js-combination" type="checkbox" data-id="7892" data-index="7892">
    </td>

    <td class="img"><img src="http://image" class="img-responsive"></td>

    //contains metal:
    <td>Chain - plastic, left - right, skin - metal silver - V6, color - dark/gray</td>

    <td class="attribute-price">5.00</td>
  </tr>
</table>  

Комментарии:

1. Сэр, вы мастер. спасибо за ваш ответ, он отлично сработал! Позвольте мне купить вам кофе, дайте мне ваш кошелек paypal или что-то в этом роде

2. Добро пожаловать 🙂 Я рад, что это сработало для вас. Если хотите, вы можете купить мне кофе здесь: buymeacoff.ee/sbgib 🙂