#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:
Основной процесс будет выглядеть следующим образом:
- Перебирайте каждый
tr
- Проверьте, имеет ли
tr
id
соответствующий ‘attribute_ [number]‘ - Проверьте
td
, содержит ли 3-й изtr
них слово «металл» - Установите
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 🙂