Permalänk

DOM/JS hur löser man röd text

Hej!

// Uppgift 1
let MyText = document.createTextNode('Hello World!')

let pTag = document.querySelector('#step01_hello')

pTag.appendChild(MyText)

// Uppgift 2
let newH2 = document.createElement('h2')

let newContent = document.createTextNode('This is a sub headline')

newH2.appendChild(newContent)

let currentDiv = document.getElementById('step02')
currentDiv.appendChild(newH2)

// Uppgift 3
let uppthree = document.createElement('h2')

let content = document.createTextNode('This is a sub headline')

uppthree.appendChild(content)

let newDiv = document.getElementById('step03')

let children = newDiv.childNodes

newDiv.insertBefore(uppthree, children[2])

//uppgift 4

let color = document.getElementsByClassName('red').style.color = 'red'

let fyra = document.getElementById('step04')

color.appendChild(fyra)

SÅ ser min kod ut i .js filen

<div id="step04">
<h2>Exercise 4</h2>
<p>
Change the color to "red" on the h2-element above (containing the text "Excercise 4")
</p>
</div>

detta är i html koden.

Jag ska byta så h2 taggarna ovanför uppgift 4 blir röd, vet inte riktigt hur jag ska göra detta, så skulle behöva hjälp om hur man löser detta om någon vet hur har gjort lite kod, men är helt ute och cyklar och har fastnat rejält på denna uppgift. precis börjat med JS och DOM

Visa signatur

Big Bang Theory
Howard Wolowitz

Permalänk

Ja du, det känns som att du skrivit kod som du inte vet vad den gör

Men om man delar upp det, vad tror du att detta gör?

document.getElementsByClassName('red')

Och vad tror du att detta gör?

style.color = 'red'

Permalänk
Skrivet av Yxskaftet:

Ja du, det känns som att du skrivit kod som du inte vet vad den gör

Men om man delar upp det, vad tror du att detta gör?

document.getElementsByClassName('red')

Och vad tror du att detta gör?

style.color = 'red'

document.getElementsByClassName('red')

Den hämtar väl .classen i css tror jag, allts classen red?

style.color = 'red'

Antar att man stylar koden till röd, är inte hundra :/

Visa signatur

Big Bang Theory
Howard Wolowitz

Permalänk
Medlem
Skrivet av Howardtheory:

document.getElementsByClassName('red')

Den hämtar väl .classen i css tror jag, allts classen red?

Inte riktigt. Den hämtar alla HTML-element som har klassen 'red', d.v.s i ditt fall inga.

Permalänk

@Tazavoo: okok, hur hade du skrivit för att hämta den ur css filen?

Visa signatur

Big Bang Theory
Howard Wolowitz

Permalänk
Medlem
Skrivet av Howardtheory:

@Tazavoo: okok, hur hade du skrivit för att hämta den ur css filen?

Ingenting ska göras med css-filen mer än att eventuellt sätta klassnamn, men det ser inte ut att vara ett krav.

Du har redan en kodsnutt som gör nästan allt:

let color = document.getElementsByClassName('red').style.color = 'red' let fyra = document.getElementById('step04') color.appendChild(fyra)

Du ska inte spara undan någon färg.
Du ska inte skapa något nytt element.

Du ska endast ändra textfärgen till röd på ett befintligt element.

Ditt befintliga element ser ut enligt följande:

<h2>Exercise 4</h2>

Detta element har två egenskaper. Taggnamnet är "h2" och innehållet är "Exercise 4".
I javascript så finns det en inbyggd metod för att hämta alla element i DOM-trädet efter deras namn.
https://developer.mozilla.org/en-US/docs/Web/API/Element/getE...

Med hjälp av detta kommando så kan du sedan iterera genom alla och sätta färgen till röd.
Lite fusk finns däremot, istället för att iterera så kan du sätta färgen på det första elementet då - enligt din kod - du bara har en h2-tagg.

Hur man sätter textfärgen till valfri färg gör man enligt:

element.style.color = 'önskad_färg'

Där "element" är elementet man vill sätta och "önskad_färg" är färgen man vill tilldela.

Lycka till.

Visa signatur

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

Permalänk
Skrivet av Leedow:

Ingenting ska göras med css-filen mer än att eventuellt sätta klassnamn, men det ser inte ut att vara ett krav.

Du har redan en kodsnutt som gör nästan allt:

let color = document.getElementsByClassName('red').style.color = 'red' let fyra = document.getElementById('step04') color.appendChild(fyra)

Du ska inte spara undan någon färg.
Du ska inte skapa något nytt element.

Du ska endast ändra textfärgen till röd på ett befintligt element.

Ditt befintliga element ser ut enligt följande:

<h2>Exercise 4</h2>

Detta element har två egenskaper. Taggnamnet är "h2" och innehållet är "Exercise 4".
I javascript så finns det en inbyggd metod för att hämta alla element i DOM-trädet efter deras namn.
https://developer.mozilla.org/en-US/docs/Web/API/Element/getE...

Med hjälp av detta kommando så kan du sedan iterera genom alla och sätta färgen till röd.
Lite fusk finns däremot, istället för att iterera så kan du sätta färgen på det första elementet då - enligt din kod - du bara har en h2-tagg.

Hur man sätter textfärgen till valfri färg gör man enligt:

element.style.color = 'önskad_färg'

Där "element" är elementet man vill sätta och "önskad_färg" är färgen man vill tilldela.

Lycka till.

Tack!

document.querySelector('#step04 h2').classList.add('red')

jag körde på det och det fungerade annars. Vet inte om det är det snyggaste eller bästa sättet men

Visa signatur

Big Bang Theory
Howard Wolowitz

Permalänk
Medlem
Skrivet av Howardtheory:

Tack!

document.querySelector('#step04 h2').classList.add('red')

jag körde på det och det fungerade annars. Vet inte om det är det snyggaste eller bästa sättet men

Mycket bra gjort. Det är garanterat en av det mest snygga lösningarna.
En rad lättläst kod.
Använder css-klass istället för element-baserad styleändring.
Perfekt selector, vilket betyder att andra element inte påverkas.

Visa signatur

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