为什么当我使用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/