gpt4 book ai didi

javascript - getElementsByName 返回未定义

转载 作者:行者123 更新时间:2023-12-02 19:42:00 24 4
gpt4 key购买 nike

这是我的 JavaScript:

<script type="text/javascript">
var crct_answrs = new Array(<?php echo implode(',', $crct_ans); ?>);
var answrs = new Array();

function check_ans(){
for(var i = 1; i < 11; i++){
var tst = "ques"+i;
var radio = document.getElementsByName(tst);
for (var x = 0; x < radio.length; x ++) {
if (radio[x].checked) {
answrs = radio.value;
}
}
}
}
</script>

这是 HTML 的一部分:

<form>
<div id="quest1" class="question">
<div class="prblm">
<?php echo $questions[1]; ?></div>
<table class="answrs">
<tr>
<td><?php echo $answrs[1][1]; ?></td>
<td><input name="ques1" type="radio" value="1"></td>
</tr>
<tr>
<td><?php echo $answrs[1][2]; ?></td>
<td><input name="ques1" type="radio" value="2"></td>
</tr>
<tr>
<td><?php echo $answrs[1][3]; ?></td>
<td><input name="ques1" type="radio" value="3"></td>
</tr>
<tr>
<td><?php echo $answrs[1][4]; ?></td>
<td><input name="ques1" type="radio" value="4"></td>
</tr>
</table>
</div>

我有 10 个带有表格的相同模式 div 标签,并且 input 名称也相应更改。check_ans()onclick 上运行。但 getElementsByName 始终返回未定义。为什么会出现这种情况。请帮我。谢谢!

最佳答案

您的错误在于:

if (radio[x].checked) {
answrs = radio.value;
}

answrs 是一个数组,需要将值设置为其所在的相应迭代器的索引。 radio.value 正在尝试从 radio 数组访问值,但也遗漏了它的索引。请查看下面我的解决方案以进行修复:

<小时/>

我有一个 jsFiddle工作。

JavaScript:

var answrs = [];

function check_ans() {
for (var i = 1; i <= 10; i++) {
var radio = document.getElementsByName("ques" + i);
for (var x = 0; x < radio.length; x++) {
if (radio[x].checked) {
answrs[i-1] = radio[x].value;
}
}
}
console.log(answrs);
}​

输出:

当为问题 1-10 选择答案 1, 2, 3, 4, 3, 2, 1, 2, 3, 4 时,数组为:

["1", "2", "3", "4", "3", "2", "1", "2", "3", "4"]

关于javascript - getElementsByName 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com