我遇到了针对特定元素和删除类的问题。在下面的HTML中,我正在查看ul> li> ul,检查它是否有值,然后需要从span中第一个lu的标记中删除该类。使用下面的示例,检查第一个ul> li> ul,它是空的,所以我会从" Home"的标签中删除js类。我的问题是,这必须是动态的,我不能只指定" Home"或"关于我"。
<ul class="Nav">
<li>
<span class="scChromeData"></span>
<span id="fld_A0F4D47685ED4" class="WebInput">
<a class="children js" href="/">Home</a>
</span>
<ul class="NavChild hide js" style="display: none;"></ul>
</li>
<li>
<li>
<li>
<li>
<span class="scChromeData"></span>
<span id="Span1" class="WebInput">
<a class="children js" href="/">About me</a>
</span>
<ul class="NavChild hide js" style="display: none;"></ul>
</li>
</ul>
这是我写的jquery:
if ( $('li > ul').children().length > 0 ) {
$( "li > span > a.js" ).removeClass( "js" )
}
非常感谢任何帮助。
答案 0 :(得分:0)
尝试
$("li > ul").each(function(){
if($(this).children().length > 0){
$(this).parent().find("span a.js").removeClass("myClass yourClass")
}
})
答案 1 :(得分:0)
很确定这应该适合你。
$("ul li ul").each(function()
{
if($(this).html() == "")
{
$(this).prev().children("a").removeClass("js");
}
});
答案 2 :(得分:0)
$("ul.Nav > li > ul").each(function(){
$this = $(this);
if (!$.trim($this.html())) // Check if it's empty ignoring whitespaces
{
$this // The UL
.closest('li') // Find it's closest parent LI
.find('.js') // Find all instances of class 'js' within the LI
.removeClass('js'); // Remove it
}
});