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

Set class on prev() if this is empty (jQuery)

如果 $(this) 为空,我正在尝试在 prev() 上添加类,如果 $(this) 为空,则尝试在 removeClass 上添加类,但无法使其工作:

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() (you could also use 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>