• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z wyświetlaniem wartości w input

VPS Starter Arubacloud
0 głosów
615 wizyt
pytanie zadane 26 kwietnia 2018 w JavaScript przez Vinchit Obywatel (1,040 p.)

Cześć, mam problem z wyświetleniem wartości w <input>

Dokładniej: 

JavaScript (dzięki kap za pomoc)

const words = {}
 
const renderWords = (words) => {
  return Object
    .keys(words)
    .reduce((items, word) => {
      const item = words[word] === 1
        ? word
        : `${word} x ${words[word]}`
       
      return [...items, item]
    }, [])
    .join(', ')
}
 
const output = document.getElementById('output')
 
document
  .getElementById('words')
  .addEventListener('click', ({ target }) => {
    if (words[target.textContent]) {
      words[target.textContent] += 1
    } else {
      words[target.textContent] = 1
    }
    output.value= renderWords(words)
  })

HTML:

<div class="wyswietlacz4"><input type="text" readonly size="100.100" id="output"></div><br>
/////////////////////////////////////////////////////
<div id="words">
  <button>test</button>
  <button>test2</button>
  <button>test3</button>
  <button>test4</button>
</div>

Sprawa wygląda tak że po kliknięciu jakiego kolwiek przycisku żadna informacja nie pojawia się w input a co dziwne wszystko działa na np. CodePen a na stronie już nie :( .

komentarz 26 kwietnia 2018 przez Vinchit Obywatel (1,040 p.)

Doszedłem do błędu :) 

"Uncaught TypeError: Cannot read property 'addEventListener' of null
    at pamiec.js:20" ktoś wie jak to naprawić?

O to kod JS: 

const words = {}

const renderWords = (words) => {
    return Object
        .keys(words)
        .reduce((items, word) => {
        const item = words[word] === 1
        ? word
        : `x ${words[word]} ${word}`

        return [...items, item]
    }, [])
        .join(' | ')
}

const output = document.getElementById('output')

document
    .getElementById('words')
    .addEventListener('click', ({ target }) => {
    if (words[target.textContent]) {
        words[target.textContent] += 1
    } else {
        words[target.textContent] = 1
    }
    output.value = renderWords(words)
})

 

2 odpowiedzi

0 głosów
odpowiedź 26 kwietnia 2018 przez LinosiK Obywatel (1,920 p.)
Sprawdź czy dobrze masz podpięty plik *.js do pliku html'a.

Skoro na CodePen działa to znaczy, że kod jest dobry.
komentarz 26 kwietnia 2018 przez Vinchit Obywatel (1,040 p.)
Na pewno bo jest JS w HTML :D (wiem nie profesjonalnie to zrobiłem), ale spróbuje teraz oddzielnie zrobić JS a HTML
komentarz 26 kwietnia 2018 przez Vinchit Obywatel (1,040 p.)
Zrobiłem i oddzielnie JS nadal to samo nie czyta jakby skryptu.
0 głosów
odpowiedź 26 kwietnia 2018 przez Vinchit Obywatel (1,040 p.)
Już nie ważne za dużo komputera na dziś a bardziej programowania :D zamiast ścieszkę do js dodać na dole strony to ja dodałem na górze :D

Podobne pytania

0 głosów
1 odpowiedź 308 wizyt
pytanie zadane 27 kwietnia 2018 w JavaScript przez Vinchit Obywatel (1,040 p.)
+1 głos
1 odpowiedź 202 wizyt
pytanie zadane 28 października 2016 w HTML i CSS przez redstar1 Bywalec (2,200 p.)

93,008 zapytań

141,975 odpowiedzi

321,256 komentarzy

62,350 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...