Jquery从具有相同类的动态循环输入中检索值?

时间:2017-02-20 15:22:08

标签: jquery

Jquery:3.x,Tomcat7

问题:

pdf.worker.js

问题:对于动态创建的'输入与class ='my_button'相同的类,如何获取点击的值?

非常感谢帮助。

3 个答案:

答案 0 :(得分:0)

尝试:

$('.my_button').click(function(){
    alert($(this).data('value'));
});

JSFiddle:https://jsfiddle.net/NotABlueWhale/xb838mdz/

答案 1 :(得分:0)

.data是一个函数,数据元素的名称是参数。它也是一个jQuery函数,因此您需要使用$(this)

$('.my_button').click(function(){
    alert($(this).data('value'));
});

答案 2 :(得分:0)

破折号(-)在JS变量中无效,它被视为减号

你可以做到

  • alert(this.getAttribute("data-value")); // DOM
  • alert($(this).attr("data-value")); // jQuery
  • alert($(this).data("value")); // jQuery DATA

然而, MAY 也希望/需要委派,因为按钮是动态生成的

$("#keyvals").on("click",".my_button",function(){

Event binding on dynamically created elements?



var data = [{value: "ONE"}, 
            {value: "TWO"}, 
            {value: "THREE"}], 
  htmlStr="";
 
for (var i = 0; i < data.length; i++) {
  htmlStr += "<input  class='my_button' type='button' data-value='" +
    data[i].value + "' value='" + data[i].value + "'/>";
}

$("#keyvals").html(htmlStr);

// this works without delegation because it is after the insertion 
$('.my_button').click(function() {
  console.log($(this).attr("data-value"))
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="keyvals"></div>
&#13;
&#13;
&#13;