设置显示:块在javascript不工作

but5z9lq  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(95)

你好我的代码有问题。我想设置显示:当我点击"开始"按钮时阻塞。我在点击时创建了addevenlistener,但是有什么不对。有人能帮助我吗?

const ulElement = document.querySelectorAll("li");
const btn = document.querySelector("button");

function changeSize() {
  ulElement.style.display = "block";
}

btn.addEventListener("click", changeSize);
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>list</title>
    <style>
      li {
        display: none;
      }
    </style>
  </head>

  <body>
   

    <button>Start</button>
    <ul>
      <li>element 1</li>
      <li>element 2</li>
      <li>element 3</li>
      <li>element 4</li>
      <li>element 5</li>
      <li>element 6</li>
      <li>element 7</li>
      <li>element 8</li>
      <li>element 9</li>
      <li>element 10</li>
    </ul>

    <script src="main.js"></script>
  </body>
</html>
chy5wohz

chy5wohz1#

不确定这是否是您的想法,但如果您更改:

li {
        display: none;
      }

致:

ul {
        display: none;
      }

如果您更改:

const ulElement = document.querySelectorAll("li");

致:

const ulElement = document.querySelector("ul");

然后它将工作的列表将出现在点击按钮后...

r55awzrz

r55awzrz2#

你有querySelectorAll,你已经选择了所有的元素,你应该有一个数组节点列表,而不是一个元素,这就是为什么你不能只在一个数组上使用e.style.display,你需要做的是循环遍历所有的元素,然后一个接一个地设置它们的显示

const ulElement = document.querySelectorAll("li");
const btn = document.querySelector("button");

function changeSize() {
  ulElement.forEach(e => e.style.display = "block")
  //ulElement.style.display = "block";
}

btn.addEventListener("click", changeSize);
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>list</title>
    <style>
      li {
        display: none;
      }
    </style>
  </head>

  <body>
   

    <button>Start</button>
    <ul>
      <li>element 1</li>
      <li>element 2</li>
      <li>element 3</li>
      <li>element 4</li>
      <li>element 5</li>
      <li>element 6</li>
      <li>element 7</li>
      <li>element 8</li>
      <li>element 9</li>
      <li>element 10</li>
    </ul>

    <script src="main.js"></script>
  </body>
</html>

相关问题