如果为空,请在prev()上设置class(jQuery)



如果$(this(为空,我将尝试在prev((上添加class,如果不是,则尝试删除class,但无法使其工作:

function sfVide(){
var noentry = false;
$('.sf').each(function(){
if($(this).val().trim()==""){
noentry = true;
$(this).prev().addClass("test");
}
else {
$(this).prev().removeClass("test");
}
});
return noentry;
}

HTML

<a class="sf--trigger">Subs</a>
<div class="sf"></div>

用于测试的实时代码笔:https://codepen.io/mSyx/pen/MWayKQx

.val()用于input元素。在您的示例中,您可能应该使用text()(也可以使用html()(:

$('.sf').each(function(){
if( $(this).text().trim() == "" )
{
noentry = true;
$(this).prev().addClass("test");
}
else 
{
$(this).prev().removeClass("test");
}
});
.btn {
background: blue;
display: block;
height: 100px;
width: 100px;
}
.btn.test {
background: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" class="btn"></a>
<div class="sf"></div>

最新更新