Kod poniżej jest poprawny. Ale to nie działa w mojej przeglądarce. Nie mam wskazówki, dlaczego moja przeglądarka nie liczy się.

<SCRIPT LANGUAGE="JavaScript">
var count = 0;
var countEl = document.getElementById("count");

function plus(){
    count++;
    countEl.value = count;
}

function minus(){
    count--;
    countEl.value = count;
}
</SCRIPT>

<div id="input_div">
    <input type="text" size="25" value="0" id="count">
    <input type="button" value="-" id="moins" onclick="minus()">
    <input type="button" value="+" id="plus" onclick="plus()">
</div>
-2
Bombaclat 5 grudzień 2013, 02:23

2 odpowiedzi

Najlepsza odpowiedź

W tym czasie skrypt jest uruchomiony, nie ma elementów, ile jeszcze nie załadowały.
Łatwa poprawka byłaby po prostu przesunąć skrypt na dole:

<div id="input_div">
    <input type="text" size="25" value="0" id="count">
    <input type="button" value="-" id="moins" onclick="minus()">
    <input type="button" value="+" id="plus" onclick="plus()">
</div>

<script type="text/javascript">
var count = 0;
var countEl = document.getElementById("count"); // now this is available

function plus(){
    count++;
    countEl.value = count;
}

function minus(){
    count--;
    countEl.value = count;
}
</script>
2
adeneo 4 grudzień 2013, 22:25

Jak widzę, musisz mieć małe błędy w swoim kodzie. Najpierw próbujesz wyszukać element, zanim będzie w domu. Więc to "dokument.getElementbyd (" Count ")" nie zwróci elementu.

Druga część jest przeznaczona dla Onclick do pracy, którą powinieneś reklama ";" Po takiej jakiejkolwiek nazwie funkcji.

<input type="button" value="+" id="plus" onclick="plus();">

Ale wtedy element nadal nie zostanie zaktualizowany, klikając przycisk. Dlatego należy dołączyć skrypt i przepisać go tak. To, co zrobiłem, jest wiązanie zdarzenia OnClick na elemencie w JavaScript w tym samym czasie, ponieważ tworzę funkcję. Zmieniłem się również, aby zmienne są zadeklarowane z jednym VAR, a kod jest zawinięty w funkcję samodzielną wykonawczą, więc nic nie jest zadeklarowane w globalnym zakresie. Mam nadzieję, że moja odpowiedź pomogła ci, powodzenia!

HTML

<div id="input_div">
    <input type="text" size="25" value="0" id="count">
    <input type="button" value="-" id="moins">
    <input type="button" value="+" id="plus"">
</div>
<script>
(function(document){
var count = 0,
    countEl = document.getElementById("count"),
    minus = document.getElementById("moins"),
    plus = document.getElementById("plus");   
plus.onclick = function(){
    count++;
    countEl.value = count;
}
minus.onclick = function(){
    count--;
    countEl.value = count;
}
}(document));
</script>

Oto link do mojej Fiddle do przetestowania kodu.

0
Johan Hörnqvist 5 grudzień 2013, 14:11