使用JavaScript在单击时显示/隐藏Div

使用JavaScript在单击时显示/隐藏Div,javascript,html,css,Javascript,Html,Css,无法使用jQuery或CSS(仅限)。我有: 函数handleDropDown(elementId){ document.getElementById('languages').style.display=“block”; } .flag图标包装器{ 右边距:20px; 垫面:5px; } .flex{ 显示器:flex; } .旗帜图标{ 宽度:50px; } .最初是隐藏的{ 显示:无; } 西班牙文 法语的 俄罗斯人 您正试图通过id访问元素,但尚未为元素指定id 你可以这样做:

无法使用jQuery或CSS(仅限)。我有:

函数handleDropDown(elementId){
document.getElementById('languages').style.display=“block”;
}
.flag图标包装器{
右边距:20px;
垫面:5px;
}
.flex{
显示器:flex;
}
.旗帜图标{
宽度:50px;
}
.最初是隐藏的{
显示:无;
}

  • 西班牙文
  • 法语的
  • 俄罗斯人

您正试图通过
id
访问元素,但尚未为元素指定
id

你可以这样做:

const divHide=document.getElementById(“div hide”);
函数handleHide(){
divHide.style.display=“无”;
}
函数handleShow(){
divHide.style.display=“block”;
}

你好
单击以隐藏
点击显示

您正试图通过
id
访问元素,但尚未为元素指定
id

你可以这样做:

const divHide=document.getElementById(“div hide”);
函数handleHide(){
divHide.style.display=“无”;
}
函数handleShow(){
divHide.style.display=“block”;
}

你好
单击以隐藏
点击显示

您想使用
getElementById
访问,但您的代码包含
语言
作为类,而不是id。请更正下面的代码

函数handleDropDown(elementId){
常量元素=document.getElementById('languages');
if(element.style.display==“块”){
element.style.display=“无”;
}否则{
element.style.display=“块”;
}
}
.flag图标包装器{
右边距:20px;
垫面:5px;
}
.flex{
显示器:flex;
}
.旗帜图标{
宽度:50px;
}
.最初是隐藏的{
显示:无;
}

  • 西班牙文
  • 法语的
  • 俄罗斯人

您想使用
getElementById
访问,但您的代码包含
语言
作为类,而不是id。请更正下面的代码

函数handleDropDown(elementId){
常量元素=document.getElementById('languages');
if(element.style.display==“块”){
element.style.display=“无”;
}否则{
element.style.display=“块”;
}
}
.flag图标包装器{
右边距:20px;
垫面:5px;
}
.flex{
显示器:flex;
}
.旗帜图标{
宽度:50px;
}
.最初是隐藏的{
显示:无;
}

  • 西班牙文
  • 法语的
  • 俄罗斯人

我相信我看到了您的尝试。我会更谨慎一点,不会使用唯一的id,我会使用一个数据属性集来切换并使用CSS设置可见性

我添加了第二个标志,只是为了说明使用数据属性集时,相同的代码适用于这两种情况。 注意:我从元素传递
这个
,但是您也可以使用事件处理程序,而不是将调用嵌入元素中,从而将代码与标记分开。(第二个例子)

函数handleDropDown(me){
//从数据属性获取并使用选择器
let-toggles=[“隐藏”、“显示”];
让tarsel=me.dataset.clickTarget;
设tar=document.querySelector(tarsel);
tar.dataset.hideme=tar.dataset.hideme==切换[0]?切换[1]:切换[0];
}
.flag图标包装器{
右边距:20px;
垫面:5px;
}
.flex{
显示器:flex;
}
.旗帜图标{
宽度:50px;
}
[data hideme=“hidden”]{
显示:无;
}
[data hideme=“showem”]{
边框:固体石灰1px;
;
}

  • 西班牙文
  • 法语的
  • 俄罗斯人
  • 啤酒
  • 奶酪

我相信我看到了您的尝试。我会更谨慎一点,不会使用唯一的id,我会使用一个数据属性集来切换并使用CSS设置可见性

我添加了第二个标志,只是为了说明使用数据属性集时,相同的代码适用于这两种情况。 注意:我从元素传递
这个
,但是您也可以使用事件处理程序,而不是将调用嵌入元素中,从而将代码与标记分开。(第二个例子)

函数handleDropDown(me){
//从数据属性获取并使用选择器
let-toggles=[“隐藏”、“显示”];
让tarsel=me.dataset.clickTarget;
设tar=document.querySelector(tarsel);
tar.dataset.hideme=tar.dataset.hideme==切换[0]?切换[1]:切换[0];
}
.flag图标包装器{
右边距:20px;
垫面:5px;
}
.flex{
显示器:flex;
}
.旗帜图标{
宽度:50px;
}
[data hideme=“hidden”]{
显示:无;
}
[data hideme=“showem”]{
边框:固体石灰1px;
;
}

  • 西班牙文
  • 法语的
  • 俄罗斯人
  • 啤酒
  • 奶酪
希望它能起作用


希望它能起作用。

您只需在类列表中添加一个切换:
元素.classList.toggle(“最初是隐藏的”)

函数handleDropDown(elementId){
常量元素=document.getElementById('languages');
element.classList.toggle(“最初是隐藏的”);
}
.flag图标包装器{
右边距:20px;
垫面:5px;
}
.flex{
显示器:flex;
}
.旗帜图标{
宽度:50px;
}
.最初是隐藏的{
显示:无;
}

  • 西班牙文
  • 法语的
  • 俄罗斯人

您只需在类列表中添加一个切换:
元素.classList.toggle(“最初隐藏”)

函数handleDropDown(elementId){
常量元素=document.getElementById('languages');
element.classList.toggle(“最初是隐藏的”);
}
.flag图标包装器{
右边距:20px;
垫面:5px;
}
.flex{
显示器:flex;
}
.旗帜图标{
宽度:50px;
}
.is-h
<span class="flag-icon-wrapper flex" onclick="handleDropDown()">
        <img class="flag-icon" src="https://i.imgur.com/3DpAxu5.png" />
        </span>
        
        <div class="languages is-hidden-initially" id="languages">
        <ul>
        <li>Spanish</li>
        <li>French</li>
        <li>Russian</li>
        </ul>
        </div>
function handleDropDown() {
    var x = document.getElementById("languages");
    if (x.style.display === "none") {
        x.style.display = "block";
    } else {
        x.style.display = "none";
    }
}