finns det något annat sätt att korta ner kodningen istället för att target och manuellt skriva ner ("li:eq"()) 39gånger

Permalänk
Medlem

finns det något annat sätt att korta ner kodningen istället för att target och manuellt skriva ner ("li:eq"()) 39gånger

function ol(data) {
$("p").append("<ol></ol>")

for (var i = 0; i < 4; i++) {
$("ol").append("<li></li>" + "<br/>");
}

$("li:eq(0)").append(" <input type=radio name=q1 > "+data.results[0].correct_answer);
$("li:eq(1)").append(" <input type=radio name=q1 > "+data.results[0].incorrect_answers[0]);
$("li:eq(2)").append(" <input type=radio name=q1 > "+data.results[0].incorrect_answers[1]);
$("li:eq(3)").append(" <input type=radio name=q1 > "+data.results[0].incorrect_answers[2]);

$("li:eq(4)").append(" <input type=radio name=q2 > "+data.results[1].correct_answer);
$("li:eq(5)").append(" <input type=radio name=q2 > "+data.results[1].incorrect_answers[0]);
$("li:eq(6)").append(" <input type=radio name=q2 > "+data.results[1].incorrect_answers[1]);
$("li:eq(7)").append(" <input type=radio name=q2 > "+data.results[1].incorrect_answers[2]);

$("li:eq(8)").append(" <input type=radio name=q3 > "+data.results[2].correct_answer);
$("li:eq(9)").append(" <input type=radio name=q3 > "+data.results[2].incorrect_answers[0]);
$("li:eq(10)").append(" <input type=radio name=q3 > "+data.results[2].incorrect_answers[1]);
$("li:eq(11)").append(" <input type=radio name=q3 > "+data.results[2].incorrect_answers[2]);

Permalänk
Medlem

Jag är inget vidare på javascript, men nåt i den här stilen borde funka:

let selector = n => "li:eq(" + n.toString() + ")"; let input = n => "<input type=radio name=q" + (n + 1).toString() + ">"; for (let i = 0; i < 12; i += 4) { $(selector(i)).append(input(i + 1) + data.results[i].correct_answer); for (let j = 0; j < 3; j += 1) { $(selector(i + j + 1)).append(input(i + 1) + data.results[i].incorrect_answers[j]); } }

Visa signatur

Arbets- / Spelstation: Arch Linux - Ryzen 5 3600 - RX 7900 XT - 32G DDR4
Server: Arch Linux - Core i5-10400F - 16G DDR4