【问题标题】:show and hide a label depending on empty state根据空状态显示和隐藏标签
【发布时间】:2020-06-22 22:38:46
【问题描述】:

每次我在不同的输入上键入时,我都会将几个按钮附加到一个 html span 标签中。

<span id="pill_filters>
  <button id="filterCreated">Filter name here</button>
  <button id="filterCreated2">Filter name here</button>
</span>

我还想在此跨度标记内有按钮时显示一个标签,如果没有,我想隐藏该标签。

&lt;label id="label_sc"&gt;Search Criteria:&lt;/label&gt;

到目前为止,我的 jquery 是

function showSCLabel(){
  if ($("#pill_filters").html.is(':empty')){
     $("#label_sc").addClass("d-none");
  }else{
   $("#label_sc").removeClass("d-none");
  }
}

但它似乎不起作用。该标签从一开始就已经具有“d-none”类,即使如此,它仍在显示。我究竟做错了什么?这不是 :empty 状态的工作方式吗?我可以用什么代替?非常感谢您的帮助!

【问题讨论】:

标签: html jquery show-hide


【解决方案1】:
  • if 语句丢失 ()
  • .html.is jQuery 无效

用途:

if ( $("#pill_filters").is(':empty') ) {    

【讨论】:

  • 啊,是的,我错过了最初的括号,抱歉。让我更正一下,因为即使这样,它仍然无法正常工作,很遗憾。
  • 啊,我确实再次运行了所有内容,并且运行良好。呵呵。我的错!
  • @Falkirkh 很高兴听到你整理好了
【解决方案2】:

不用jQuery回答:

//span
const span=document.getElementById("pill_filters");
//label
const label=document.getElementById("label-sc");

span.addEventListener('DOMSubtreeModified',function(){
  //if innerHTML is not ""
  if(span.innerHTML){
    //show label
    label.style.display="block";
  }else{
    //hide label
    label.style.display="none";
  };
};

【讨论】:

    猜你喜欢
    • 2018-03-29
    • 1970-01-01
    • 2022-10-25
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多