2017-02-22 89 views
0

я получаю эту ошибку из-за этих двух линий:Keep получать SyntaxError: отсутствующий) после списка аргументов

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

И я не могу понять, что мне не хватает.

Редактировать: Код окружения (Excuse the mess) Содержит методы, которые используют оператор switch для определения ввода необходимых массивов, оттуда помещает его в параметры DisplayQuestion, который затем передает его нижеуказанным функциям поведение хотел:

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

Пожалуйста, вставьте код и отметьте строки, которые вызывают проблемы. –

+0

Скорее всего, это не код, который вы вставили здесь, потому что я могу копировать и вставлять только это, не получая такую ​​же ошибку. Покажите больше окружающего кода - это, вероятно, проблема в строке или двух, ведущих к этому. – Jason

+0

У вас есть код, нарушаемый в разных строках? Поскольку вы строите строку, ее наличие в разных строках может вызвать проблему. Поскольку js-линии работают нормально https://jsfiddle.net/cmhb465u/15/ – Imprfectluck

ответ

1

Вы не можете иметь вызов функции вроде этого:

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

Вам нужно будет оценить параметр в отдельной переменной, а затем передать его в функцию.

0

Итак, в своем вызове onClick multiAnswer вы завернули 3 входа в кавычки. После ссылки на вашу функцию multiAnswer у вас есть 3 входа, которые вы ищете. У вас также есть знаки + на концах этих входов. Вам не нужно объединять парнеры внутри вызова функции.

Надеюсь, это поможет! https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions

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

 Смежные вопросы

  • Нет связанных вопросов^_^