2013-07-07 46 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段落标记没有值属性。 – Daedalus

+0

正确。我已经更新 – TGH

0

假设第一部分工作以某种方式(不知道什么是“按钮”时),试试这个:

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

没有投票下来,但这是行不通的。段落标签没有价值属性 – Daedalus

+0

我知道,我没有看小提琴,只是改成了text() – 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无效。如果您想使用document.getElementById,应该使用$('#num')来获取jQuery节点
  • ,应该是document.getElementById('num')。请注意,没有领先的'#'
  • 可以使用.innerHTML(用于DOM节点)或.html()(用于jQuery节点)来获取或设置HTML内容,如p,div,span。从输入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; 
});