[英]How to add a class to a span element which is part of an existing <li> tag with jQuery
我如何才能為這些span元素添加一個類,這些span
是每個示例中帶有class='error'
的li
標簽的一部分,這是生成的 HTML:
<li class="error">
<!--if list has class error, then add also class error to span which is part of that list tag-->
<span class="error"></span>
</li>
這是我到目前為止的代碼:
if(status == 'error') {
data.context.addClass('error'); // adds class error to li tag
}
這很容易使用JQuery ,只需選擇具有類.error
所有li
項目,然后使用find()查找其中的所有spam
元素,最后將類.error
添加到那些:
$(document).ready(function() { $("li.error").find("span").addClass("error"); });
span.error { background-color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <li class=""> <span>Parent "li" do not have class error</span> </li> <li class="error"> <span>Parent "li" have class error</span> </li>
這應該達到預期的結果。 使用error
類遍歷所有 li 元素並找到任何跨度,然后將類error
添加到其中。
$('li.error').each(function() {
$(this).find('span').addClass('error');
})
對於純原生 JavaScript 解決方案,您可以使用屬性選擇器來查找所有具有名為error
的類的li
元素。 獲得li
元素列表后,只需循環(使用forEach
或 for 循環)並附加一個span
元素作為li
的子元素。 還應該通過setAttribute
span 元素賦予一個名為“error”的類屬性。
function appendErrorSpan(li) { var errorEl = document.createElement('span'); errorEl.setAttribute('class', 'error'); errorEl.appendChild(document.createTextNode('Error span added!')); li.appendChild(errorEl); }; var errorListItems = document.querySelectorAll('li[class="error"]'); errorListItems.forEach(appendErrorSpan);
<li class=""> <span></span> </li> <li class="error"> </li>
而不是使用循環,你可以這樣做 -
let a=document.querySelectorAll("li.error > span");
$(a).addClass('error');
最簡單的方法——
$("li.error > span").addClass('error');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.