如何在点击时删除li元素?

时间:2018-01-03 14:25:39

标签: javascript html

如果有很多li元素,我想要一些商店的产品目录。 Html

<p> Choose collor: <span class="Black">Black</span>, <span class="white ">white </span>, <span class="Yellow">Yellow </span>

<ul>
  <li id="Black"> Black Shoe </li>
  <li id="white"> white Shoe </li>
  <li id="Yellow "> Yellow Shoe </li>
</ul>

我想删除其中的其他元素,我点击了:

var Black = document.getElementById("Black");
var white = document.getElementById("white");
var Yellow = document.getElementById("Yellow ");


document.getElementsByClassName("Black").onclick = function() { white.style.display = 'none';
Yellow.style.display = 'none'; };

document.getElementsByClassName("white").onclick = function() { Black.style.display = 'none';
Yellow.style.display = 'none'; };

document.getElementsByClassName("Yellow").onclick = function() { white.style.display = 'none';
Black.style.display = 'none'; };

但问题是当用户点击黑色时它会隐藏白色和黄色,但是当用户点击黄色时,黄色已经隐藏了。

我该如何恢复?

我的意思是如何正确配置它?

当我点击黑色时,它必须隐藏白色和黄色,然后当我点击白色时,它应显示隐藏在上一个功能中的白色。

3 个答案:

答案 0 :(得分:0)

您可以为所有li元素使用不同的函数 首先,当你点击黑色li时,该功能应该运行并隐藏替代的li 当你输入键盘或鼠标输出时,它也可以创建一个函数并在keyup事件上调用它,该函数将显示推荐的li并且所有其他所有人都会这样做,但是你可以回答: )

答案 1 :(得分:0)

您可以通过添加

来指定特定的课程
$( this ).toggleClass( "new_class_name")

并使用css隐藏此.new_class_name

check the source

  

但是,由于您使用jquery ,那么您应该这样做   

之类的东西
<script>
function myFunction() {
   var elemenBlackt = document.getElementById("Black");
   elementBlack.classList.toggle("new_class_name");
}
</script>

查看示例here

希望它有所帮助!

答案 2 :(得分:0)

您可以隐藏所有li元素,然后显示您想要的那个。像这样:

<ul>
  <li class="color" id="Black"> Black Shoe </li>
  <li class="color" id="white"> white Shoe </li>
  <li class="color" id="Yellow "> Yellow Shoe </li>
</ul>


var reveal = function(idName) {
  document.getElementById(idName).style.display = 'inline-block';
}

var hideAllButOne = function(idName) {
  document.getElementsByClassName("color").style.display = 'none';
  reveal(idName); 
}

document.getElementsByClassName("Black").onclick = function() { hideAllButOne('Black') };

document.getElementsByClassName("white").onclick = function() { hideAllButOne("white")  };

document.getElementsByClassName("Yellow").onclick = function() { hideAllButOne("Yellow")  };