2017-02-20 35 views
0

jQuery的:3.x中,Tomcat7Jquery從同一類的動態循環輸入中檢索值?

問題:

var 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); 

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

問:對於動態創建my_button」 '與同一類類=輸入',如何獲得點擊的價值?

幫助受到高度讚賞。

回答

0

.data是一個函數,所述數據元素的名稱是參數。這也是一個jQuery函數,所以你需要使用$(this)

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

嘗試:

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

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

+0

對不起都能跟得上這也沒有工作... ..我只需要單擊I/P類型就可以獲得'數據值'的值。... –

+0

它適用於我。我將添加一個可用的JSFiddle示例,以便您可以看到它的實際應用。 – NotABlueWhale

+1

Witha很少有人用「$(」#keyvals「)。on(」click「,」。my_button「,function(){」打包完成所需的功能... thx 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")) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<div id="keyvals"></div>

+0

他doesn因爲他在添加了HTML之後添加了事件監聽器,所以不需要委派, – Barmar

+0

誰可以低估這個答案,請告訴我爲什麼? – mplungjan

+0

這通常是浪費時間來問的,Downvoters通常不會回來,所以他們會從來沒有看到這個問題,你的評論已發送給我,因爲我是最後一位評論者 – Barmar