在JQuery脚本

时间:2017-02-25 19:04:38

标签: javascript jquery html

我正在尝试为具有屏幕数字键的孩子创建一个简单的数学测验应用程序,该应用程序将附加到答案的输入字段。我想使用链接到类的jQuery事件监听器,所以我不必为每个数字调用onClick函数。我在其他地方发现了这个问题,但我无法评论进一步提出我遇到的问题,因为我刚刚加入堆叠溢出,并且它表明我的声誉不够高。

链接到其他问题:append value to an input field in JQuery

当我尝试追加时,当我尝试单击我的按钮时,我得到一个未定义的,我无法看到代码中的错误在哪里。任何帮助将不胜感激。

我的jQuery:

$(".userIn").click(function() {
  var usrIn = $(this).data('usrIn');
  $("#answer").val(function() {
    return this.value + usrIn;
  });
});

我的按钮示例:

<button type="button" class="btn btn-primary btn-block userIn" data-number="0" id="zero">0</button>

以下是JSfiddle以及我所有关联的样式表和外部js。

3 个答案:

答案 0 :(得分:3)

var usrIn = $(this).data('usrIn');更改为var usrIn = $(this).attr('data-number');

小提琴:https://jsfiddle.net/969r1gp0/4/

答案 1 :(得分:1)

您的数据属性名为data-number,而不是data-userin,因此您应该写:

var usrIn = $(this).data('number')

但是由于按钮的文本确实是你想要添加的,你可以不用数据属性,只需这样做:

var usrIn = $(this).text();

答案 2 :(得分:0)

尝试这两种方法,都可以使用

document.getElementById("input_id").value = you_value;
document.getElementById("input_id").textContent = you_value;