2201_75330918 2024-03-09 14:12 采纳率: 40%
浏览 2
已结题

js请问下面的代码数组怎么改啊

下面这段代码怎么改才能设置数组中元素的颜色啊啊


<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <h1>占い</h1>
  <span>名前:</span>
  <input type="text" id="name">
  <button id="uranau">占う</button>
  <p id="result"></p>

  <script>
    'use strict';
    const arr = ['大吉', '中吉', '小吉', '末吉', '凶']
    const uranau = document.querySelector('#uranau')
    const name = document.querySelector('#name')
    const result = document.querySelector('#result')
    uranau.addEventListener('click', function () {
      const random = Math.floor(Math.random() * 5)


      switch (random.value) {
        case 0:
          arr[0].style.color = 'pink'
          break
        case 1:
          arr[1].style.color = 'blue'
          break
        case 2:
          arr[2].style.color = 'orange'
          break
        case 3:
          arr[3].style.color = 'green'
          break
        case 4:
          arr[4].style.color = 'red'
          break
      }
      result.innerHTML = name.value + 'さんの運勢:' + arr[random]

    })


  </script>
</body>

</html>
  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-03-09 14:12
    关注

    2201_75330918 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    在你提供的代码中,尝试给数组元素(字符串)设置颜色是不正确的,因为字符串没有 style 属性。你需要改变的是 result 元素的样式来显示随机选择的颜色。以下是修改后的代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        .pink { color: pink; }
        .blue { color: blue; }
        .orange { color: orange; }
        .green { color: green; }
        .red { color: red; }
      </style>
    </head>
    
    <body>
      <h1>占い</h1>
      <span>名前:</span>
      <input type="text" id="name">
      <button id="uranau">占う</button>
      <p id="result"></p>
    
      <script>
        'use strict';
        const arr = ['大吉', '中吉', '小吉', '末吉', '凶'];
        const uranau = document.querySelector('#uranau');
        const name = document.querySelector('#name');
        const result = document.querySelector('#result');
    
        uranau.addEventListener('click', function () {
          const random = Math.floor(Math.random() * 5);
          let className;
          switch (random) {
            case 0:
              className = 'pink';
              break;
            case 1:
              className = 'blue';
              break;
            case 2:
              className = 'orange';
              break;
            case 3:
              className = 'green';
              break;
            case 4:
              className = 'red';
              break;
          }
          
          // 设置结果文本并添加相应的类名以更改颜色
          result.innerHTML = `${name.value}さんの運勢:<span class="${className}">${arr[random]}</span>`;
        });
      </script>
    </body>
    
    </html>
    

    解决方案:

    1. <head> 标签内定义 CSS 类,为每种颜色分配一个类名。
    2. 删除错误地对数组元素应用样式的部分。
    3. 使用 switch 语句根据随机数确定要应用的颜色类名。
    4. 在设置 result.innerHTML 时,将选中的字符串包裹在带有相应颜色类名的 <span> 标签内,以便应用颜色样式。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 修改了问题 3月9日
  • 创建了问题 3月9日