Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用户更改按钮时隐藏或显示元素_Javascript_Html - Fatal编程技术网

Javascript 用户更改按钮时隐藏或显示元素

Javascript 用户更改按钮时隐藏或显示元素,javascript,html,Javascript,Html,我将创建一个函数,它允许我隐藏一些元素(我网站上的过滤器),同时选择另一个元素(所有类别)。我正在使用Sharetribe-MarketplaceCMS,这是我的 这是我为实现这一目标而编写的一段代码,但它不起作用 document.querySelectorAll('a.home-categories-main:first-child.selected'), function hideFilters() { document.getElementById('filters').style

我将创建一个函数,它允许我隐藏一些元素(我网站上的过滤器),同时选择另一个元素(所有类别)。我正在使用Sharetribe-MarketplaceCMS,这是我的

这是我为实现这一目标而编写的一段代码,但它不起作用

document.querySelectorAll('a.home-categories-main:first-child.selected'),
function hideFilters() {
   document.getElementById('filters').style.display = 'none';
};           

在Rentim中,您应该使用onDocumentReady函数添加自定义脚本。它在解析HTML并呈现所有元素之后执行

onDocumentReady(function() { 
  var filters = document.querySelector('#filters');
  var allCategories = document.querySelector('.home-categories-main:first-child.selected');
  filters.style.display = allCategories ? 'block' : 'none';
});
是JSFIDLE上的一个工作示例。

这是一个使用最基本的HTML和JS组合的简单示例

没什么特别的,但很管用

HTML:


是JSFIDLE上的一个工作示例。

我已经尝试过使用这个脚本。当我将它粘贴到控制台时,一切都很好,但是当我将它添加到实时版本时,出现了一个错误。正如我提到的,我使用Sharetribe CMS,这个编辑器非常有限,我只能添加脚本。这些脚本被注入到标记中。这是编辑我答案的网站,请查看。嗨,谢谢你让我知道。我使用的是Sharetribe网站生成器,无法编辑代码,唯一的选择是添加自定义脚本。这些脚本被注入到标记中。
<div id="first" onclick="hideFilters();">All</div>
<div id="filters">
  <div>Price</div>
  <div>Model</div>
  <div>Date</div>
  <div>Color</div>
</div>
var a = true;
function hideFilters(){
  let x = document.getElementById("filters");
  if(a){
        x.style.display = "none";
    }else{
        x.style.display = "block";
    }
  a = !a;
}