使用Jquery根据变量编写Div的html

时间:2015-11-01 17:48:20

标签: javascript jquery html

我目前正在制作一个简单的基于网络的计算器。我无法将我的按钮值分配到"屏幕"我要显示刚刚按下的数字值的区域。我可以将值转换为javascript变量,但是当我尝试将其写入屏幕区域时,它总是以未定义的形式出现。

这是我的代码:

$(".numbers").click(function(){
    currentValue = ($(this).val());
    $("#screen").html(function(){
        return "<p> " + currentValue.toString() + "</p>";
    })
    });

问题似乎是代码运行了两次,但只有当我将它设置为返回时(如果我使用return&#34; test&#34;它工作正常)。

2 个答案:

答案 0 :(得分:1)

根据您提供的代码,我相信这就是您所需要的:

$(".numbers").click(function() {
    currentValue = $(this).val();
    $("#screen").html("<p> " + currentValue + "</p>")
});

我还认为,您应该使用.html()或使用输入框作为屏幕并使用append(),而不是使用.val()。如何使用.html,每次按下数字时都会覆盖屏幕。您仍然可以使用.html(),但您必须将原始屏幕值与新按钮号连接:

$('#screen').html($('#screen').html() + currentValue);

但最好使用.append()

$('#screen').append(currentValue);

看一下使用输入框的FIDDLE

<input type="text" id="screen"></input>

<button class="numbers" value="1">1</button>
<button class="numbers" value="2">2</button>
<button class="numbers" value="3">3</button>

$(".numbers").on('click', function() {
    var $s = $('#screen');
    $s.val($s.val() + $(this).val())
});

每次按下一个数字,它会将其添加到当前数字字符串的末尾,而不是覆盖所有数字。

答案 1 :(得分:-1)

看起来你的代码正常工作,向我们展示你的HTML。

&#13;
&#13;
$(".numbers").on("click", function(){
    currentValue = $(this).val();
    $("#screen").html("<p> " + currentValue + "</p>");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button class="numbers" value="2">Click me</button>
<div id="screen"></div>
&#13;
&#13;
&#13;