Я делаю тест на основе этого:
https://jsfiddle.net/thebobbyblack/xgf9k2hw/
И я не могу понять, как добавить ссылки в "правильную" строку ответа викторины.
В идеале это было бы по частям текста в ответе на правильный ответ, но я бы также согласился на отдельный текст. строка под ответом на вопрос ответ.
Для последнего я пробовал:
Вопрос:
var quiz = [
{
"question" : "Q1: How many locations in Syria does the UN classify as besieged?",
"image" : "",
"choices" : [
"Zero",
"One",
"Four",
"Nine"
],
"correct" : "Zero",
"explanation" : "The UN used to classify nine locations and more than 417,000 people as living under siege, but all these places, including formerly rebel-held Eastern Ghouta, have now either been evacuated or retaken by the Syrian government.",
"link" : "http://www.hamsterdance.com",
}
Но этот код не помогает:
if (quiz[currentquestion].hasOwnProperty('link') && quiz[currentquestion]['link'] != ""){
if ($('#question-image').length == 0){
$(document.createElement('a'))
.addClass('question-image')
.attr('id', 'question-image')
.attr('src', quiz[currentquestion]['link'])
.attr('alt', htmlEncode(quiz[currentquestion]['question']))
.insertAfter('#question');
} else {
$('#question-image')
.attr('href', quiz[currentquestion]['link'])
.attr('alt', htmlEncode(quiz[currentquestion]['question']));
}
} else {
$('#question-image').remove();
}
Я нашел кое-что, что действительно работает! Теперь я просто не могу понять, как передавать элементы из массива в качестве целевого URL. Этот код позволяет мне выбирать из массива для создания текста ссылки.
$('<a>').addClass('linktext').attr('id','link').html('').text(quiz[currentquestion]['link']).insertAfter('#explanation');
Что мне следует искать в документации jquery? Любая помощь очень ценится.
Кстати, вместо $(document.createElement('a')) вы можете просто написать $('<a>'). И вы можете поместить все атрибуты в аргумент объекта: $('<a>', {"class": "question-image", id: "question-image", "href": quiz[currentquestion].question});
Вам не нужно использовать кодировку HTML при добавлении атрибутов в JavaScript. Это необходимо только тогда, когда атрибут находится в исходном HTML.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Решено! Спасибо за помощь!
$('<a>').addClass('linktext').attr('id','linktext').attr('href',(quiz[currentquestion]['linkurl'])).html('').text(quiz[currentquestion]['link']).insertAfter('#explanation');
Добавление "linkurl" в мой массив. Скрипка здесь и этот вопрос об обмене стеками тоже действительно помогли: Как создать ссылку с помощью javascript?
Еще раз спасибо
Образы имеют
src, ссылки имеютhref, а не наоборот.