首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择HTML中的每个子元素,除了一个

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

Stack Overflow用户
提问于 2021-05-11 00:17:34
回答 4查看 695关注 0票数 3

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

HTML

代码语言:javascript
复制
<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

代码语言: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";
EN

回答 4

Stack Overflow用户

发布于 2021-05-11 00:31:47

这条路:

代码语言:javascript
复制
#pages > div:not([id="page-2"]) {
  display : none;
}
代码语言:javascript
复制
<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:

代码语言:javascript
复制
function ShowPage(pageID)
  {
  document.querySelectorAll('#pages > div').forEach(el =>
    {
    el.style.display = (el.id === pageID) ? 'block' : 'none'
    })
  }

ShowPage('page-2')
代码语言:javascript
复制
<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>

票数 2
EN

Stack Overflow用户

发布于 2021-05-11 00:25:43

你可以做这样的事。

代码语言:javascript
复制
let children = document.getElementById('pages').children;

for (let index = 0; index < children.length; index++){
  if (children[index].id !== 'page-2') {
    children[index].style.display = 'none';
  } else {
    children[index].style.display = 'block';
  }
}
代码语言:javascript
复制
<div id = "pages">
  <div id = "page-1">a</div>
  <div id = "page-2">b</div>
  <div id = "page-3">c</div>
  <div id = "page-4">d</div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2021-05-11 00:27:19

可以使用数组来存储不包含的in,这样就可以在长期内添加更多的in。然后循环遍历div并检查id是否在数组中。

代码语言:javascript
复制
const idsnotinclude = ["page-6"] 

 const divs = document.getElementById('pages').children;
 const divsArray = Array.from(divs);

 divsArray.forEach(function (div){
  if(idsnotinclude.includes(div.id)){
    div.style.display = "block";
    return;
  }
  
  div.style.display = "none";
 });
代码语言:javascript
复制
<div id = "pages">
  <div id = "page-1">1</div>
  <div id = "page-2">2</div>
  <div id = "page-3">3</div>
  <div id = "page-4">4</div>
  <div id = "page-5">5</div>
  <div id = "page-6">6</div>
  <div id = "page-7">7</div>
  <div id = "page-8">8</div>
  <div id = "page-9">9</div>
  <div id = "page-10">10</div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67479032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档