hur får man till denna funktion i api/js

Permalänk

hur får man till denna funktion i api/js

Jag är rätt ny på detta och försöker få till i api/js så att denna kod ska känna av frågorna ifall det finns ett svars alternativ eller fler, och känner den av att det finns endast ett svarsalterntiv så skrivs en input ut där man får skriva in svaret själv och finns det fler svarsalternativ så skriver den ut radiobuttons där man får klicka in vilket svar man vill välja.

Hoppas ni förstår hur jag menar, vad är det jag missar i denna kod så den inte gör detta? Första frågan skrivs ut men kommer inte fram något svars alternativ nämligen.

let answerURL = 'http://vhost3.lnu.se:20080/answer/1' let questionURL = 'http://vhost3.lnu.se:20080/question/1' let alternatives = this.jsonQ.alternatives let nextAURL = this.jsonQ.nextURL let svar = document.getElementById('svar') async function myQuiz () { let myQ = await window.fetch(questionURL) let jsonQ = await myQ.json() return jsonQ.question } myQuiz().then((text) => { let qDiv = document.querySelector('#questions') let quest = document.createElement('p') quest.innerHTML = text qDiv.appendChild(quest) }) async function getNextQ () { let question = await myQuiz(questionURL) answerURL = question.nextAURL if(question.alternatives === undefined) { let fInput = document.createElement('input') fInput.setAttribute('type', 'text') fInput.appendChild(svar) } else { for (let alt in question.alternatives) { let rButton = document.createElement('input') let label = document.createElement('label') radioButton.setAttribute('type', 'radio') radioButton.setAttribute('value', `${alt}`) radioButton.setAttribute('id', `${alt}`) radioButton.setAttribute('name', 'radioAnswer') label.setAttribute('for', `${alt}`) label.textContent = `${question.alternatives[alt]}` form.appendChild(radioButton) form.appendChild(label) } } }

Visa signatur

Big Bang Theory
Howard Wolowitz

Permalänk
Medlem

@Howardtheory
I första if-satsen så har du appendChild() åt fel håll.
Rätt syntax:

container.appendChild(child_to_add);

Källa: https://developer.mozilla.org/en-US/docs/Web/API/Node/appendC...

I else-satsen så skapar du "rButton" men sen använder du aldrig denna variabel. Du använder "radioButton" istället som inte är definierad. Borde vara massor med errors i Javascript-konsolen?

Tips: Du kan skriva nyckelordet "debugger" på en rad om du vill skapa en hårdkodad breakpoint för Javascript-debugging. I detta fall skulle jag lägga in en sån innan if-satsen och sen steppa igenom koden varje gång en ny fråga kommer, så kan du se hur det hanteras.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Skrivet av Leedow:

@Howardtheory
I första if-satsen så har du appendChild() åt fel håll.
Rätt syntax:

container.appendChild(child_to_add);

Källa: https://developer.mozilla.org/en-US/docs/Web/API/Node/appendC...

I else-satsen så skapar du "rButton" men sen använder du aldrig denna variabel. Du använder "radioButton" istället som inte är definierad. Borde vara massor med errors i Javascript-konsolen?

Tips: Du kan skriva nyckelordet "debugger" på en rad om du vill skapa en hårdkodad breakpoint för Javascript-debugging. I detta fall skulle jag lägga in en sån innan if-satsen och sen steppa igenom koden varje gång en ny fråga kommer, så kan du se hur det hanteras.

okok. hm, är det bara att skriva debugger i på en rad i en funktion typ? sitter i visual studio code och kodar i nu.

Visa signatur

Big Bang Theory
Howard Wolowitz

Permalänk
Medlem
Skrivet av Howardtheory:

okok. hm, är det bara att skriva debugger i på en rad i en funktion typ? sitter i visual studio code och kodar i nu.

Du kan skriva det var som helst, ja.

Gå in på sidan. Öppna debuggingen (F12). Klicka sen på Run, så kommer koden exekveras fram till "debugger".
https://jsfiddle.net/2zkq84pt/

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?