JQuery:尝试在点击按钮

时间:2017-08-17 11:33:05

标签: javascript jquery html

我无法使用其中一个按钮将数据附加到HTML文本区域。有问题的按钮是“BPI”。我想在我的第一个文本区域附加一些pi的数字。其他4个按钮在第二个文本区域内运行。提前感谢您的帮助。

$(document).ready(function() {
  $('#BAddition').click(function(e) {
    $('#TOperator').val() += "+";

  })

  $('#BSubtract').click(function(e) {
    $('#TOperator').val() += "-";
  })

  $('#BMultiplication').click(function(e) {
    $('#TOperator').val() += "*";
  })

  $('#BDivision').click(function(e) {
    $('#TOperator').val() += "/";
  })

  $('#BPI').click(function(e) {
    $('#TFirstnum').val() += "3.141592657";
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Input:<br>
<textarea id="TFirstnum"></textarea>
<textarea id="TOperator"></textarea>
<textarea id="TSecondnum"></textarea>
<label id="LEquals"></label>
<br>
<button type="button" onclick="" id="BAddition">+</button>
<button type="button" onclick="" id="BSubtract">-</button>
<button type="button" onclick="" id="BDivision">/</button>
<button type="button" onclick="" id="BMultiplication">*</button>
<button type="button" onclick="" id="BPI">&#960;</button>
<button type="button" onclick="" id="BEquals">=</button>

4 个答案:

答案 0 :(得分:1)

如果您想使用$(yourObject).val("yourvalue")

添加值

如果要为现有值添加值,请使用$(yourObject).val($(yourObject).val() + "yourvalue")

下面的工作示例

&#13;
&#13;
$(document).ready(function() {
  $('#BAddition').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "+");

  })

  $('#BSubtract').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "-");
  })

  $('#BMultiplication').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "*");
  })

  $('#BDivision').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "/");
  })

  $('#BPI').click(function(e) {

    $('#TOperator').val($('#TOperator').val() + "3.141592657");
  })
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Input:<br>
<textarea id="TFirstnum"></textarea>
<textarea id="TOperator"></textarea>
<textarea id="TSecondnum"></textarea>
<label id="LEquals"></label>
<br>
<button type="button" onclick="" id="BAddition">+</button>
<button type="button" onclick="" id="BSubtract">-</button>
<button type="button" onclick="" id="BDivision">/</button>
<button type="button" onclick="" id="BMultiplication">*</button>
<button type="button" onclick="" id="BPI">&#960;</button>
<button type="button" onclick="" id="BEquals">=</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您想使用Jquery 设置元素的value属性,则需要在>内设置值:{{1 }}

如果您想要获取元素的值,请使用空白的parantheses:.val('newValue')

因此,要连接(或追加)值,您应该使用:

var x = elem.val()

要详细说明的更长版本:

$('#TOperator').val($('#TOperator').val() + '+');

答案 2 :(得分:0)

您正在使用不起作用的+=。您必须获取值,然后设置值;

$('#BAddition').click(function(e) {
    $('#TOperator').val( $('#TOperator').val() + "+");
});

你经常重复自己。我建议你稍微更改一下html并创建一个更整洁的功能。

<button type="button" class="MathSign" data-sign="+">+</button>
<button type="button" class="MathSign" data-sign="-">-</button>
<button type="button" class="MathSign" data-sign="/">/</button>
<button type="button" class="MathSign" data-sign="*">*</button>

<button type="button" id="BPI">&#960;</button>
<button type="button" class="MathSign" data-sign="=">=</button>


// handle the [+ - * / =] in one go:
$('.MathSign').on('click', function(){
    $('#TOperator').val( $('#TOperator').val() + $(this).data('sign'));

    // Or,you can drop the data-sign attribute and use the content of the button
    $('#TOperator').val( $('#TOperator').val() + this.innerHTML);
})                                                              

答案 3 :(得分:0)

$(selector).val()用于获取input框的值。

如果要设置值,则需要传递值$(selector).val(value)

我修改了你的例子。你需要考虑的一件事是当你$(selector).val()时,你会得到字符串。如果您想要添加而不是concatenation两个字符串,那么您应该使用parseInt

&#13;
&#13;
$(document).ready(function() {
  $('#BAddition').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "+");
  })

  $('#BSubtract').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "-");
  })

  $('#BMultiplication').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "*");
  })

  $('#BDivision').click(function(e) {
    $('#TOperator').val($('#TOperator').val() + "/");
  })

  $('#BPI').click(function(e) {
    $('#TFirstnum').val($('#TFirstnum').val() + "3.141592657");
  })
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Input:<br>
<textarea id="TFirstnum"></textarea>
<textarea id="TOperator"></textarea>
<textarea id="TSecondnum"></textarea>
<label id="LEquals"></label>
<br>
<button type="button" onclick="" id="BAddition">+</button>
<button type="button" onclick="" id="BSubtract">-</button>
<button type="button" onclick="" id="BDivision">/</button>
<button type="button" onclick="" id="BMultiplication">*</button>
<button type="button" onclick="" id="BPI">&#960;</button>
<button type="button" onclick="" id="BEquals">=</button>
&#13;
&#13;
&#13;