javascript - 当文本字段为空时,JS 从 div 中删除类?

标签 javascript

我有一个搜索栏,其中的结果显示在页面的中心,并带有一个固定的 div。绝对 div 用半透明的黑色覆盖结果后面的页面。如果我只是在不刷新页面的情况下删除我放入搜索字段中的内容,我怎么能删除在 keyup 函数上添加的类“.coverOn”?

谢谢。

<styles>
.coverOn {
    position:absolute;
    width:100%;
    height:100%;
    background-color:rgba(0,0,0,0.7);
    z-index:8;
}
#output { /* holds search results */
    position:fixed;
    left:0;
    right:0;
    top:130px;
    width:400px;
    margin:0 auto;
    -webkit-border-radius:15px;
    -moz-border-radius:15px;
    border-radius:15px;
    z-index:12;
    }
</styles>

<body>
 <div id="cover"></div>
 <div id="Search">
     <input type="text" name="search" onkeyup="searchq();" value="" required class="SearchField" />
    <div id="output"></div>
  </div>
</body>

<script>
function searchq() {
    var searchTxt = $("input[name='search']").val();
    $.post("../php/productSearch.php", {searchVal: searchTxt}, function(output) {
     $("#output").html(output);
     document.getElementById("cover").className = "coverOn";
  }); 
}
</script>

最佳答案

如果 searchTxt 字符串为空,则删除类:

function searchq() {
    var searchTxt = $("input[name='search']").val().trim();
    $.post("../php/productSearch.php", {searchVal: searchTxt}, function (output) {
        $("#output").html(output);
        document.getElementById("cover").className = searchTxt ? "coverOn" : "";
    });
}

或者因为您使用的是 jQuery,所以它可以更简单:

$("#cover").toggleClass("coverOn", searchTxt);

关于javascript - 当文本字段为空时,JS 从 div 中删除类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887822/

相关文章:

javascript - 按钮在 jquery 对话框内容中无法正常工作(使用引导表关闭 jquery 对话框的两种方法)?

javascript - 使用 JavaScript 检测特定的 CSS3 关键帧

javascript - 什么是......在javascript中的声明

javascript - 为什么在 Laravel 中获取 JavaScript 总是返回空值?

javascript - 编辑框 tinymce

javascript - BackboneFire是否支持使用AutoSync模型的非AutoSync收集

javascript - 简单的待办事项列表不起作用

javascript - 使用 process.exit() 时并不总是保存 Winston 日志文件 - Node js

javascript - Passport 身份验证引用错误: user is not defined

javascript - 连接到亚马逊产品广告 API 时出现 "Access-Control-Allow-Origin"错误