Javascript 我不知道';我不知道如何只写一次dom文档

Javascript 我不知道';我不知道如何只写一次dom文档,javascript,dom,Javascript,Dom,我只想重写一次dom文档 Html: ? R T 类风湿关节炎 霍 F Fr 法罗群岛 我试过这个: function gradeTest() { var a1 = document.getElementsByName('q1'); var a1answers = new Array(); var a1right = new Array('R','T','Ra'); var a1bool = true; for(i = 0; i < a1.l

我只想重写一次dom文档

Html:


?
R
T
类风湿关节炎
霍
F
Fr
法罗群岛

我试过这个:

function gradeTest() {
    var a1 = document.getElementsByName('q1');
    var a1answers = new Array();
    var a1right = new Array('R','T','Ra');
    var a1bool = true;

    for(i = 0; i < a1.length; i++) {
        if(a1[i].checked) {
            a1answers.push(a1[i].value);
        }
    }
    a1answers.sort();
    a1right.sort();
    if(a1answers.length == a1right.length) {
        for(i = 0; i < a1answers.length; i++) {
            if(a1answers[i] != a1right[i]) {
                a1bool = false;
                break;
            }
        }
    }
    else {
        a1bool = false;
    }
    if(a1bool == true) {
        var moveable = document.getElementById('test');
        var s = '<p align="center"> <img border=0 src="arbol.png" width="250" /></p>'; 
        var div = document.createElement('div');
        div.innerHTML = s;
        var elements = div.firstChild;  
        document.body.appendChild(elements);

        var newParent = document.body.appendChild(document.createElement('test'));
        newParent.removeChild(newParent.firstChild);
        newParent.insertBefore(moveable, newParent.firstChild);
        correctAnswers++;
    }
}
功能等级测试(){
var a1=document.getElementsByName('q1');
var a1answers=新数组();
var a1right=新数组('R','T','Ra');
var a1bool=真;
对于(i=0;i
当我执行这段代码时,会打印很多图像,但我想要一个

在第六行,我把测试放出来,但测试不起作用


谢谢

检查是否已添加新元素,不要再添加它

if(a1bool == true) {
    if (!document.getElementById("arbol")) {
        var s = '<p align="center" id="arbol"> <img border=0 src="arbol.png" width="250" /></p>'; 
        var div = document.createElement('div');
        div.innerHTML = s;
        var elements = div.firstChild;  
        document.body.appendChild(elements);
    }
    correctAnswers++;
}
if(a1bool==true){
if(!document.getElementById(“arbol”)){
var s='

; var div=document.createElement('div'); div.innerHTML=s; var元素=div.firstChild; document.body.appendChild(元素); } 正确答案++; }


document.createElement('test')
应该是什么意思?没有
元素。因为第一行包含
文档。getElementById
可以提供HTML吗?
appendChild
返回子元素,而不是父元素
newParent
没有任何子级,因此
newParent.removeChild(newParent.firstChild))
不会做任何事情。我看不到任何方法可以创建多个图像,除非它位于您未显示的循环中。请创建一个演示此问题的。您可以使用a在问题中放置一个可执行示例。谢谢,但这不起作用,moveable.firstChild.className始终与arbol@barmar不同抱歉,我不清楚您在哪里添加了图像。我已经更改了答案,为新元素提供了一个ID并进行了检查。我试图澄清一下,假设您需要用dom重写html文档,并插入以下内容:document.body.appendChild(document.createTextNode('OK');,但你只需要这一次。你想看到好的,但是没有好的,我用一张图片放了这个例子,但是是相同的@Barmar
if(a1bool == true) {
    if (!document.getElementById("arbol")) {
        var s = '<p align="center" id="arbol"> <img border=0 src="arbol.png" width="250" /></p>'; 
        var div = document.createElement('div');
        div.innerHTML = s;
        var elements = div.firstChild;  
        document.body.appendChild(elements);
    }
    correctAnswers++;
}