Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как добавить класс в цикле ? (https://javascript.ru/forum/misc/84769-kak-dobavit-klass-v-cikle.html)

maintpl 14.12.2022 21:53

Как добавить класс в цикле ?
 
Есть цикл списка ul li
Нужно всем li, в которых внутри нету тега span дать класс .hidden

<ul id="shipping_method" class="woocommerce-shipping-methods">
									<li>
						<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate76" value="flat_rate:76" class="shipping_method" checked="checked"><label for="shipping_method_0_flat_rate76">Code 1 0,5 kg - 2 kg</label>					</li>
									<li>
						<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate77" value="flat_rate:77" class="shipping_method"><label for="shipping_method_0_flat_rate77">Code 2 2 kg - 5 kg</label>					</li>
									<li>
						<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate78" value="flat_rate:78" class="shipping_method"><label for="shipping_method_0_flat_rate78">Code 3 10kg</label>					</li>
									<li>
						<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate79" value="flat_rate:79" class="shipping_method"><label for="shipping_method_0_flat_rate79">Code 4 15 kg</label>					</li>
									<li>
						<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate80" value="flat_rate:80" class="shipping_method"><label for="shipping_method_0_flat_rate80">Code 5 20 kg</label>					</li>
									<li>
						<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate81" value="flat_rate:81" class="shipping_method"><label for="shipping_method_0_flat_rate81">Code 6 25 kg: <span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">CHF</span>367.00</bdi></span></label>					</li>
									<li>
						<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate82" value="flat_rate:82" class="shipping_method"><label for="shipping_method_0_flat_rate82">Code 7 30 kg</label>					</li>
							</ul>


вот в таком виде собственно выводится список
нужно всем li дать класс, а вот предпоследнему не давать класс так, как там есть тег span


есть такое вот решение, но запихнув в js файл, оно не срабатывает
document.querySelectorAll('li')
  .forEach(li => li.classList.toggle('hidden', !li.querySelector('span')));

maintpl 14.12.2022 22:52

вопрос решен.

рони 14.12.2022 23:09

maintpl,
только ни кому не говори про это https://learn.javascript.ru/onload-ondomcontentloaded


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