2016-05-12 7 views
1

Ich möchte ein Update ein Dokument HTML neu schreiben, mit einigen Informationen bekommen von Javascript.Wie HTML-Dokument mit Javascript neu schreiben

<html> 
<head> 
<title>App</title> 
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> 
<script type="text/javascript" src="quiz.js"></script> 
</head> 

<body>   

<form id="test"> 
<table border="1" cellpadding="5" cellspacing="0"> 


//q3 and q2, follow the same schema 
<tr> 
<td>q3?</td> 
<td> 
    <input name="q4" type="radio" value="false"/> 
    S<br> 
    <input name="q4" type="radio" value="false"/> 
    Sa<br> 
    <input name="q4" type="radio" value="true"/> 
    Re 
</td> 
</tr> 

</table> 
<br/> 
<input name="submit" type="button" onClick="gradeTest()" value="Comprueba"/> 
</form> 
</body> 
</html> 

Und meine Javascript-Datei, quiz.js

function gradeTest() { 
//variables with global implications 
var totalQuestions = 3; 
var correctAnswers = 0; 
var alertText; 
var i; 

//iterate through all options in radio button list 
//if checked value is true, answer is correct 
var a2 = document.getElementsByName('q2'); 
for(i = 0; i < a2.length; i++) { 
    if(a2[i].checked) { 
     if(a2[i].value == 'true') { 
      correctAnswers++; 
      break; 
     } 
    } 
} 


var a3 = document.getElementsByName('q3'); 
for(i = 0; i < a3.length; i++) { 
    if(a3[i].checked) { 
     if(a3[i].value == 'true') { 
      correctAnswers++; 
      break; 
     } 
    } 
} 

var a4 = document.getElementsByName('q4'); 
for(i = 0; i < a4.length; i++) { 
    if(a4[i].checked) { 
     if(a4[i].value == 'true') { 
      correctAnswers++; 
      break; 
     } 
    } 
} 


if(correctAnswers==3) 
    document.write("OK"); 

Das Problem war, als ich versuchte, document.write zu verwenden, um ein neues Dokument nur mit „OK“ zu generieren, aber ich mag diese drucken ok im html mit allen Informationen.

+7

Verwenden Sie nicht 'document.write'. Verwenden Sie stattdessen DOM-APIs. – SLaks

+0

document.write überschreibt alles nicht verwenden – Steve

Antwort

2

Sie möchten an das DOM anhängen. So etwas wie

document.body.appendChild(document.createTextNode('OK')); 

Siehe Node.appendChild() und Document.createTextNode().

+0

das löst mein Problem, aber nur noch eine Frage, wie möglich ist, in diesem Beispiel OK am Anfang der Website (html), danke: D @ André Dion – user243380

+0

Verwendung ['Node.insertBefore()'] (https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore). Holen Sie sich einen Verweis auf das erste Kind von '' und fügen Sie Ihren 'OK'-Knoten davor ein. – hungerstar

+0

danke, es hat funktioniert – user243380