我的html:
<label for="answer_1" class="answer_label"><input type="radio" id="answer_1">Answer</label>
<label for="answer_2" class="answer_label"><input type="radio" id="answer_2">Answer</label>
<label for="answer_3" class="answer_label"><input type="radio" id="answer_3">Answer</label>
我的JS:
var answers = ["Answer_1","Answer_2","Answer_3"];
var answer_labels = document.querySelectorAll(".answer_label");
for (var i = 0; i < answers.length; i ){
answer_labels[i].innerText = answers[i]
}
當我想為標簽設定文本時,出現錯誤:
未捕獲的型別錯誤:無法設定未定義的屬性(設定“innerText”)
uj5u.com熱心網友回復:
您在 for 回圈中有語法錯誤。
改變 for (var i = 0; i < .length; i )
到 for (var i = 0; i < answer_labels.length; i )
var answers = ["Answer_1","Answer_2","Answer_3"]
var answer_labels = document.querySelectorAll(".answer_label");
for (var i = 0; i < answer_labels.length; i ){
answer_labels[i].innerText = answers[i];
}
<label for="answer_1" class="answer_label"><input type="radio" name="choice" id="answer_1">Answer</label>
<label for="answer_2" class="answer_label"><input type="radio" name="choice" id="answer_2">Answer</label>
<label for="answer_3" class="answer_label"><input type="radio" name="choice" id="answer_3">Answer</label>
uj5u.com熱心網友回復:
如果您只想替換標簽而不破壞內部的單選按鈕輸入,您應該執行以下操作:
var answers = ["Answer_1","Answer_2","Answer_3"]
document.querySelectorAll(".answer_label").forEach((l,i)=>{
l.innerHTML=l.querySelector("input").outerHTML answers[i];
})
<label for="answer_1" class="answer_label"><input type="radio" name="choice" id="answer_1">Answer</label>
<label for="answer_2" class="answer_label"><input type="radio" name="choice" id="answer_2">Answer</label>
<label for="answer_3" class="answer_label"><input type="radio" name="choice" id="answer_3">Answer</label>
uj5u.com熱心網友回復:
在迭代之前將要迭代的陣列的長度存盤到變數中是一個很好的做法。通過這種方式,您還可以確保迭代不會超過您在回圈中參考的另一個陣列的長度。
代碼中也存在邏輯錯誤。重寫innerText標簽將洗掉嵌套input元素。我已將輸入移出下面代碼中的標簽。
var answers = ["Answer_1", "Answer_2", "Answer_3", "Answer_4"];
var answerLabels = document.querySelectorAll(".answer_label");
var length = Math.min(answers.length, answerLabels.length);
for (var i = 0; i < length; i ) {
answerLabels[i].innerText = answers[i];
}
<label for="answer_1" class="answer_label">Answer</label><input type="radio" id="answer_1">
<label for="answer_2" class="answer_label">Answer</label><input type="radio" id="answer_2">
<label for="answer_3" class="answer_label">Answer</label><input type="radio" id="answer_3">
uj5u.com熱心網友回復:
問題是我沒有<!DOCTYPE html>"在 html 檔案中指定“ ...謝謝大家
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/401227.html
標籤:javascript html 数组 查询选择器
上一篇:如何從JavaScript中的textarea獲取每個youtubeurl?
下一篇:Javascriptdocument.getElementById('').style.display="block"不作業
