我已经使用html和javascript工作了几天而且我已经陷入困境了。我需要回答一个mcq并显示它是对还是错 为什么没有输入if条件?
我刚刚使用GetElemntById放了一个简单的javascript,用.value放了.checked 这不是学校作业,这是我长期计划的一些事情
<html>
<head>
<script>
document.write("In javascript");
function myFunction()
{
document.write("In the function");
if(document.getElementById('a1').checked)
{
document.write("in if");
var x = document.getElementById('a1').value
document.write(x);
}else
{
document.write("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
}
</script>
</head>
<body>
<p> How much is 2+2 ?? </p>
4 : <input type="radio" name="ans" id="a1" value="4"><br/ >
5 : <input type="radio" name="ans" id="a2" value="5"><br/ >
6 : <input type="radio" name="ans" id="a3" value="6"><br/ >
7 : <input type="radio" name="ans" id="a4" value="7"><br/ >
<button onClick="myFunction()">clickz</button>
</body>
</html>
答案 0 :(得分:1)
document.write()
调用将清除网页上的所有内容,这会导致所有单选按钮消失。所以你不会通过document.getElementById
得到任何东西。
如果要输出任何调试日志,请删除document.write
并使用console.log
或alert
。
答案 1 :(得分:0)
加载文档后,您无法使用document.write
。如果这样做,您的浏览器将打开一个替换当前文档的新文档,因此,您无法访问任何html内容。
这就是您document.getElementById()
返回null
的原因,并且无法检查属性checked
。
将您的document.write()
替换为alert()/console.log()
<script>
document.write("In javascript");
function myFunction()
{
if(document.getElementById("a1").checked)
{
alert("in if");
var x = document.getElementById('a1').value
console.log(x);
}else
{
alert("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
}
</script>
答案 2 :(得分:0)
<script>
document.write("In javascript");
function myFunction()
{
if(document.getElementByName('ans').checked)
{
document.write("in if");
var x = document.getElementById('a1').value
document.write(x);
}else
{
document.write("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
}
</script>
只有在您检查第一个答案时,您的代码才有效,因为您仅使用id
,将document.getElementById
更改为document.getElementByName
答案 3 :(得分:0)
document.write
存在问题如果在页面加载后调用document.write,它将删除所有以前的内容,这就是你的问题。
如果document.write在正文中,则没有这样的问题。
请参阅此主题以获取更多信息why is document.write a bad practise
答案 4 :(得分:0)
正如其他说法。主要问题是你的<“document.write(”在javascript中“);”
在完成条件之前,它会清除您的输入元素。
查看小提琴示例
点击here!
< script > function myFunction() {
if (document.getElementById('a1').checked) {
alert("in if")
var x = document.getElementById('a1').value
alert(x);
} else {
alert("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
} < /script>
<p>How much is 2+2 ??</p>
<div>
<input type="radio" name="ans" id="a1" value="4"/>
</br>
<input type="radio" name="ans" id="a2" value="5" />
</br>
<input type="radio" name="ans" id="a3" value="6" />
</br>
<input type="radio" name="ans" id="a4" value="7" />
</br>
<button onclick="myFunction()">Click me</button>
</div>