如何仅为这些span
标签中{{1}的一部分li
添加 class 到 span 元素}}
例如,这是生成的HTML:
class='error'
这是我到目前为止的代码:
<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>
答案 0 :(得分:2)
使用 JQuery 很容易,只需选择所有li
类的.error
项,然后使用find()查找所有{{1} }元素,最后将类spam
添加到其中:
.error
$(document).ready(function()
{
$("li.error").find("span").addClass("error");
});
span.error {
background-color: red;
}
答案 1 :(得分:1)
这应该达到预期的结果。使用error
类遍历所有li元素,找到所有范围,然后向其中添加类error
。
$('li.error').each(function() {
$(this).find('span').addClass('error');
})
答案 2 :(得分:1)
对于纯香草JavaScript解决方案,您可以使用属性选择器来查找所有具有名为li
的类的error
元素。一旦有了li
元素的列表,就可以循环(使用forEach
或for循环)并附加一个span
元素作为li
的子元素。还应通过setAttribute
为span元素提供一个名为“错误”的类属性。
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>
答案 3 :(得分:1)
您可以像这样使用循环来代替
let a=document.querySelectorAll("li.error > span");
$(a).addClass('error');
答案 4 :(得分:1)
最简单的方法-
$("li.error > span").addClass('error');