Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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 如果加载了元素类,则显示隐藏Div_Javascript_Html - Fatal编程技术网

Javascript 如果加载了元素类,则显示隐藏Div

Javascript 如果加载了元素类,则显示隐藏Div,javascript,html,Javascript,Html,如果加载了另一个div类,我想显示该div。 仅当加载了选定的类时才显示纳米棒,否则纳米棒将隐藏 css代码示例: .nanobar { height: 75px; width: 100%; background: #fef9c7; border:1px solid #fce181; color:#333; padding:10px; margin-bottom:10px; font-size: 1.2rem; display:none; } <div

如果加载了另一个div类,我想显示该div。 仅当加载了
选定的
类时才显示
纳米棒
,否则
纳米棒
将隐藏

css代码示例:

.nanobar {
  height: 75px;
  width: 100%;
  background: #fef9c7;
  border:1px solid #fce181;
  color:#333;
  padding:10px;
  margin-bottom:10px;
  font-size: 1.2rem;
  display:none;
}
<div class="nanobar">
<span>Content</span>
</div>
<div id="category_container" class="content-padding {if $category} selected{/if}"> </div>
HTML代码示例:

.nanobar {
  height: 75px;
  width: 100%;
  background: #fef9c7;
  border:1px solid #fce181;
  color:#333;
  padding:10px;
  margin-bottom:10px;
  font-size: 1.2rem;
  display:none;
}
<div class="nanobar">
<span>Content</span>
</div>
<div id="category_container" class="content-padding {if $category} selected{/if}"> </div>

内容

在此方面的任何帮助都将不胜感激。

首先检查您是否能找到所选课程:

var selected = document.getElementsByClassName("selected");
然后检查此变量是否有多个元素

if (selected.length < 1) {

// Hide your nanobar

} else {
// Show it
}
if(selected.length<1){
//隐藏你的纳米棒
}否则{
//表现出来
}

这不是完整的解决方案,如果您仍然有问题,请询问注释。

代码检查第二个
div
是否选择了
类。如果是,将显示第一个
div
,否则第一个
div
将保持隐藏状态

let divElements=document.querySelectorAll('div');
if(divElements[1].classList.contains(“选定”)){
divElements[0].classList.replace(“隐藏”、“显示”);
}否则{
divElements[0].classList.replace(“显示”、“隐藏”);
}
.nanobar{
高度:75px;
宽度:100%;
背景#fef9c7;
边框:1px实心#fce181;
颜色:#333;
填充:10px;
边缘底部:10px;
字号:1.2rem;
}
.隐藏{
显示:无;
}
.表演{
显示:块;
}

你好

杰森


是什么阻止你做你想做的事?你试了什么?我试着用这个好的,所以。。。是什么阻止您使用此页面的示例?需要明确的是:在这个网站上,我们不会免费为你编写一个完整的功能,我们会帮助你找到并修复你的bug。如果没有代码,那么就没有解决方案。你不能只是来这里说“我想这么做,怎么做?”。你必须展示你的错误代码,并询问它为什么不起作用。@sjahan我是一个初学者,如果我知道我不会寻求帮助……我完全理解你是一个初学者。问题是:即使你是一个初学者,这也不是一个你可以要求别人做你的工作/家庭作业的地方。您可以显示您的代码并询问为什么这样做不起作用,但您不能要求他人代您编写代码。或者,如果您只想检测该特定div上的“选定”类,
if(document.getElementById(“category_container”).classList.contains(“selected”){document.getElementsByClassName(“nanobar”)[0]。style.display=“block”;}
。元素有一个
classList
属性,该属性有一个
contains
方法()。
getElementsByClassName
方法(在本例中为文档对象)返回一个节点列表,我们使用
[0]
从列表()中获取第一个(可能是唯一的)节点,你是对的,但如果必须是具体的,我只会使用id category_容器并检查它是否有所选的类。这就是我所做的:)我只是解释了OP的方法是如何工作的(并链接到尊敬的MDN),因为他们说它们是新的。很好,但是他们实际上试图隐藏“纳米棒”,只有在另一个div拥有名为“selected”的类时才显示它。最好的测试方法可能是使用
classList.contains()
而不是
className=
,以便允许元素上有多个类。我还认为按标记名选择(如
.querySelectorAll(“div”)
)可能有点脆弱,这意味着如果添加另一个div,它可能会破坏代码。只是我的想法。如果你不完全理解这个问题,可以通过在评论中提问得到一些澄清。这将帮助你写出一个好的答案,也将帮助OP编辑问题,使其更好。