为什么当我使用alert(el2.getAttribute("class"));时警报显示正确的值(即pl),而当我使用alert(el2.getAttribute("value"));时却不显示正确的值(应该是每个选项的值,例如sunny ...等)。

<!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Allowance updater example</title>
      </head>
      <body>

      <label for="weather">Select the weather type today: </label>
<select id="weather">
  <option value="" class = "pl">--Make a choice--</option>
  <option value="sunny" class = "pl">Sunny</option>
  <option value="rainy" class = "pl">Rainy</option>
  <option value="snowing" class = "pl">Snowing</option>
  <option value="overcast" class = "pl">Overcast</option>
</select>

<p></p>
      <script>
          var el = document.querySelector("select");
          var el2 = document.querySelector("option");
          el.addEventListener("click", x);
          function x() {
          alert(el2.getAttribute("value"));
        alert(el2.getAttribute("class"));
          }
      </script>
        </body>
</html>

最佳答案

这应该是每个选项(例如,晴天...等)的值


不能。应该是e2中存储的特定元素的value属性。


var el2 = document.querySelector("option");



…这是文档中的第一个选项元素。


<option value="" class = "pl">



…这是一个空字符串。

如果要获取所有选项,则需要全部获取(querySelectorAll),然后将结果元素列表循环为数组。

关于javascript - Javascript —为什么getAttribute()函数不适用于某些属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47141917/

10-11 02:19