2017-02-22 5 views
0

Ich erhalte diesen Fehler aufgrund dieser beiden Linien:erhalte Syntaxerror: fehlt) nach Argumentliste

document.getElementById('button').innerHTML = '<p><button 
    onClick = "MultiAnswer('+ questions[output] + ',' + answer[output] 
    +');">Submit</button></p>'; 

Und ich kann nicht herausfinden, was mir fehlt.

Edit: Hier ist der umgebende Code (Excuse the mess) Enthält Methoden, die eine switch-Anweisung verwendet, um die Eingabe für die erforderlichen Arrays zu bestimmen, von dort setzt es in die Parameter für DisplayQuestion, die es dann an die Funktionen von unten übergibt das Verhalten wollte:

MultiAnswer('+ questions[output] + ',' + answer[output] 
+') 

Sie müssen die Parameter in einer separaten Variable bewerten und geben sie dann in der Funktion:

function MultiQuest(questions, choices, answer){ 
    var output = Math.floor(Math.random() * (questions.length)); 
    var choicesOut = []; 

    document.getElementById('question').innerHTML = '<p id = "Q1">' + questions[output] + '<p><br>'; 

    for(var k = 0;k < choices[output].length; k++){ 
     choicesOut.push('<p><input id = "choice'+[k]+'" type = "radio" name = "option" value="'+choices[output][k]+'">' + choices[output][k] + '<p>');  
    } 
    document.getElementById('answers').innerHTML = choicesOut.join(""); 
    document.getElementById('button').innerHTML = '<p><button onClick = "MultiAnswer('+ questions[output] + ',' + answer[output] +');">Submit</button></p>'; 
    document.getElementById('score').innerHTML = '<p>' + score + '<p>'; 
} 

function MultiAnswer(questions, answer, pageType){ 

    var currentQuestion = document.getElementById('Q1').textContent; 
    var number = multiQuestions(currentQuestion, questions); 
    var correctAnswer = answer[number]; 
    var givenAnswer; 

    var options = document.getElementsByName('option'); 
    var i 
    for(i = 0; i < options.length; i++){ 
     if(options[i].checked){ 
      givenAnswer = options[i].value; 
     } 
    } 

    if(givenAnswer == correctAnswer){ 
     alert("Right Answer!"); 
     score++; 
    } else { 
     alert("Wrong Answer!"); 
     score = 0; 
    } 
    i = 0; 
    DisplayQuestion(pageType); 
} 

function multiQuestions(currentQuestion, whichArray){ 
    for(var i = 0; i < multiquestions.length; i++){ 
     if(currentQuestion == whichArray[i]){ 
      return i; 
     } 
    } 
    return null; 
} 
+0

Bitte Code eingefügt und die Linien markieren, die das Problem verursachen. –

+0

Es ist wahrscheinlich nicht der Code, den Sie hier eingefügt haben, weil ich nur kopieren und einfügen kann, ohne den gleichen Fehler zu bekommen. Zeige mehr von dem umgebenden Code - es ist wahrscheinlich ein Problem in der Zeile oder zwei, die zu diesem führen. – Jason

+0

Haben Sie den Code in verschiedenen Zeilen aufgeteilt? Da Sie eine Zeichenfolge erstellen, kann das Problem in verschiedenen Zeilen auftreten. Weil die js Zeilen gut funktionieren https://jsfiddle.net/cmhb465u/15/ – Imprfectluck

Antwort

1

Sie keinen Funktionsaufruf wie diese haben können.

0

Also in Ihrem onClick Aufruf von multiAnswer haben Sie die 3 Eingaben in Anführungszeichen verpackt. Nachdem Sie Ihre MultiAnswer-Funktion referenziert haben, haben Sie die 3 Eingänge, nach denen Sie suchen. Sie haben auch + Zeichen an den Enden dieser Eingänge. Sie müssen die Parens innerhalb des Funktionsaufrufs nicht verketten.

Ich hoffe, das hilft! https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions

onClick = "MultiAnswer(questions[output] + ',' + answer[output] 
)">Submit</button></p>'; 
Verwandte Themen