2013-12-11 4 views
3

Я довольно новичок в html, я пытаюсь показать значение на моей веб-странице, которое увеличивается при нажатии кнопки.HTML система увеличения голосов

Вот мой код

<script type ="text/javascript"> 
    var likesSD = 0; 
    var dislikesSD= 0; 
</script> 
    <button class="like" onclick="likes++">I like!</button> 
<script>document.write(likesSD);</script> 

значение на экране не меняется, когда кнопка нажата. Есть ли способ, которым я могу это сделать, без использования базы данных.

+2

Немного вещей: Нет переменной 'любит'. Вы не должны использовать 'document.write'. Это потеряет * понравится * при загрузке страницы. Пользователь не увидит, что нравится увеличиваться, потому что он написан только на странице при загрузке. – CodingIntrigue

+0

Уже упоминалось [здесь] (http://stackoverflow.com/questions/719194/how-can-you-make-a-vote-up-down-button-like-in-stackoverflow). – fiskolin

ответ

6

Вы можете сделать это:

<div id="likes"></div> 

<script type ="text/javascript"> 
    var likes = 0; 

    function IncreaseLikes() 
    { 
     likes++; 
     document.getElementById("likes").innerHTML = likes; 
    } 
</script> 

<input type="button" class="like" onclick="IncreaseLikes()" value="I like!" /> 
  • Используйте некоторый элемент для хранения значения, это не хорошо использовать document.write();
  • Я изменил вашу кнопку на input type="button";
  • В любой базе данных информация будет потеряна при обновлении страницы. Вы можете использовать localStorage (поддерживается во всех современных браузерах), чтобы сохранить сохраненное значение, но только в браузере. Все еще недействительно для реального пула голосования.
+0

Вы указали переменную 'likesSD', но вы увеличиваете' любит'. – Philipp

+1

нет переменной 'любит'. Вы имели в виду 'likesSD ++' и '... innerHTML = likesSD'? – jalynn2

+1

document.getElementById ("нравится") не будет работать, если вы используете class = "like" вместо id = "like" –

1

Вы должны определить функцию, которая увеличивает ваш счетчик like/dislike, а затем записывает его в документ. Затем отобразить эту функцию на OnClick событие вашей кнопки:

<script type ="text/javascript"> 
    var likesSD = 0; 
    var dislikesSD= 0; 

    function like() { 
     likesSD++; 
     document.getElementById("likes").innerHTML = likesSD; 
    } 
</script> 
    <button class="like" onclick="like()">I like!</button> 
    <div id="likes"></div> 
+1

Это не сработает. 'document.write' заменит тело страницы, включая разметку для'

+0

Действительно? Я думал, document.write просто пишет в конец html-документа? – RononDex

+0

обновлено мое редактирование, чтобы не использовать document.write – RononDex

Смежные вопросы