2013-07-07 3 views
0

Here это скрипка. Я пытаюсь сделать это, когда вы нажимаете кнопку, она добавляет 1 к #num.Добавление номера в p.value

JS:

$(document).ready(function() { 
    $('#b').button({ 
     icons: { 
      secondary: '.ui-icon-triangle-1-n' 
     } 
    }); 
    $('#b').click(function() { 
     var x = '#num'.value; 
     var u = x + 1; 
     document.getElementById('#num').innerHTML = u; 
    }); 
}); 
+0

вы пробовали положить на значения в консоль, чтобы увидеть, что может произойти? –

ответ

2

Попробуйте .Это должен работать

$(document).ready(function() { 
    $('#b').button({ 
     icons: { 
      secondary: '.ui-icon-triangle-1-n' 
     } 
    }); 
    $("#b").click(function() { 
     var x = parseInt($('#num').html()); 
     var u = x + 1; 
     $('#num').html(u); 
    }); 
}); 
+0

Это предложение привязывает клик к телу вместо кнопки: '$ (this) .click (function() {' – Seth

+0

Как вы можете использовать '$ (this)'? Разве это не относится к ' документ' в этом контексте? – regularmike

+0

Извините, я не заметил эту ошибку. Я скопировал фактический код и изменил часть ошибки. – mohkhan

0
var x = Number($('#num').text()); 

Вы не получения значения правильного пути. Попробуйте выше

+0

Следует ли удалить «#»? – neuront

+0

@TGH Теги абзаца не имеют атрибута value. – Daedalus

+0

правильный. Я обновил – TGH

0

Предполагая, что первая часть работает как-то (не уверен, что «кнопка» есть), попробуйте следующее:

$('#b').click(function() { 
    var x = $('#num').text(); 
    var u = parseInt(x) + 1; 
    $('#num').html(u); 
}); 
+0

Не проголосовал, но это не сработает. Теги абзаца не имеют атрибута значения. – Daedalus

+0

Я знаю. Я не смотрел на скрипку. Просто изменил текст() – regularmike

+0

У меня все еще есть проблема. – Daedalus

0
$(document).ready(function() { 
    $('#b').button({ 
     icons: { 
      secondary: '.ui-icon-triangle-1-n' 
     } 
    }); 
    $(this).click(function() { 
     // var x = '#num'.value; 
     var x = $('#num').html(); 
     var u = parseInt(x) + 1; 
     document.getElementById('#num').innerHTML = u;//why not use $('#num').html(u); 
    }); 
}); 

вы можете попробовать это.

0

Есть несколько ошибок:

  • '#num'.value не является действительным. Вы должны использовать $('#num'), чтобы получить узлы jQuery
  • , если вы хотите использовать document.getElementById, это должно быть document.getElementById('num'). Заметьте, что нет ведущего '#'
  • для получения или установки содержимого HTML в тегах, таких как p, div, span, .innerHTML (для узлов DOM) или .html() (для узлов jQuery); для получения входного значения из ввода, textarea, используйте .value (для узлов DOM) или .val() (для узлов jQuery)
  • любое значение или HTML-контент в узле представляет собой строку, поэтому вам лучше изменить его на число через parseInt (Javascript позволяет добавить строку в целое число, но это на самом деле строка конкатенации)

Я хотел бы изменить свои коды таким образом:

$(this).click(function() { 
    var x = parseInt($('#num').html()); 
    var u = x + 1; 
    document.getElementById('num').innerHTML = u; 
}); 
Смежные вопросы