javascript - 选择 HTML 中的每个子元素,除了一个

标签 javascript html

我正在尝试使用 javascript 编辑我网站中 HTML 元素的样式,但不必编写除一个之外的每个子元素,javascript 中是否有一种方法可以选择父 div 下的所有内容 <div id = "pages">除了一个 child ?

HTML

<div id = "pages">
  <div id = "page-1"></div>
  <div id = "page-2"></div>
  <div id = "page-3"></div>
  <div id = "page-4"></div>
</div>

Javascript

//is there a way to select every pages in div id = "pages" except for one page without typing 
//everything manually?
document.getElementbyId("page-1").style.display = "none";
document.getElementbyId("page-2").style.display = "block";
document.getElementbyId("page-3").style.display = "none";
document.getElementbyId("page-4").style.display = "none";

最佳答案

这样:

#pages > div:not([id="page-2"]) {
  display : none;
}
<div id = "pages">
  <div id="page-1">page-1</div>
  <div id="page-2">page-2</div>
  <div id="page-3">page-3</div>
  <div id="page-4">page-4</div>
</div>

如果你讨厌 CSS:

function ShowPage(pageID)
  {
  document.querySelectorAll('#pages > div').forEach(el =>
    {
    el.style.display = (el.id === pageID) ? 'block' : 'none'
    })
  }

ShowPage('page-2')
<div id="pages">
  <div id="page-1">page-1</div>
  <div id="page-2">page-2</div>
  <div id="page-3">page-3</div>
  <div id="page-4">page-4</div>
</div>

关于javascript - 选择 HTML 中的每个子元素,除了一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67479032/

相关文章:

javascript - View 在窗口调整大小时中断

python - 我正在使用 excel 来构建网站 - 正在寻找替代方案

javascript - 如何使用jsPDF设置图像以适合页面宽度?

javascript - 元素如何仅在滚动时固定到页面顶部?

javascript - 是否可以从具有跨源数据的元素中捕获?

javascript - 拖放 Html 5 文件上传 - 防止加载

html - Flex-grow 不适用于列方向

vba - vb 脚本到 javascript

javascript - 使用 Javascript 发出 post 请求

html - 将 <a> 标签移动到没有 <br> 的新行