2017-01-06 1 views
0

Ich habe eine Schleife, in der ich Schaltflächen als die Länge der Array-valtime ausgeben.bekommen ID der Schaltfläche geklickt für Schleife

var html =''; 
    for (var j=0, n=valstime.length; j<n; j++) 
     { 
     html += ' <tr>'; 
     html += ' <td>'+'<button class="btn btn-default" value="'+(valstime[j])+'" id="time<?php echo $post->ID?>'+j+'">'+(valstime[j])+'</button>'+'</td>'; 
     html +=  '</tr>'; 
     } 
    $("#times<?php echo $post->ID?>").append(html); 

Jetzt möchte ich die HTML-Schaltfläche geklickt bekommen. Zuerst war ich mit

id="time<?php echo $post->ID?>" 

und wenn ich den HTML-Code-Taste bekommt bekommt ich nur den ersten, weil id nicht gleich sein müssen, wenn sie gleiche jquery Wille ist nur die erste bekommt. Also habe ich das gemacht.

id="time<?php echo $post->ID?>'+j+'" 

Jetzt ist die ID für jede Schaltfläche unterschiedlich. Ich bekam html des Knopfes, der durch seine Identifikation mit diesem Code angeklickt wurde.

$("#time<?php echo $post->ID?>").click(function(){ 
    var ttime = $(this).html(); 
    console.log(ttime); 
    var timestr=ttime; 
    var time=new Date();   
    time.setHours(parseInt(timestr.split(":")[0])+1,00,00); 
    var newtime= formatAMPM(time); 
    $(".tt_time").val(ttime+' - '+newtime); 
    $(".tt_time").html(ttime+' - '+newtime); 

}); 

Jetzt möchte ich die ID der Schaltfläche erhalten, auf die man geklickt wird und die ID hier übergeben, um seine HTML zu bekommen.

$("#clicked ID here").click(function(){ 

Ich habe auch versucht, aber nichts. Ich weiß, es ist kein guter Ansatz.

for (var k=0; k<10; k++) 
        { 
$("#time<?php echo $post->ID?>'+k+'").click(function(){ 

kann jemand etwas vorschlagen?

+0

Fügen Sie dieser Schaltfläche Klasse hinzu und feuern Sie das Ereignis in der Klasse ab. Im click-Ereignis erhalten Sie die Details zum angeklickten Element. – prathmeshb1

Antwort

2

Verwendung $(this) den Kontext der Schaltfläche erhalten geklickt:

Bind click Ereignis auf einem class gemeinsam alle buttons wie unten

$(document).on("click", ".btn", function(){ 
    console.log($(this).attr("id")); 
}); 

$(function() { 
 
    $(document).on("click", ".btn", function() { 
 
    alert($(this).attr("id")) 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="btn" id="btn1">Button 1</button> 
 
<button class="btn" id="btn2">Button 2</button> 
 
<button class="btn" id="btn3">Button 3</button>

+0

danke ich habe id kann ich das tun? var ttime = $ (id) .html(); es funktioniert nicht. Erhalte diesen Fehler Kann nicht lesen Eigenschaft 'Split' von undefined –

+0

Ich möchte die HTML der Schaltfläche, die angeklickt wird. Wie ich seine ID in ID-Variable bekomme. Wie kann ich es weitergeben, um HTML zu bekommen? –

+1

ist es getan, danke –

0

können Sie binden onclick -Ereignis, während Sie es erstellen HTML d intim.

html += '<td>'+'<button class="btn btn-default" value="'+(valstime[j])+'" 
      onclick="GetPostID(time<?php echo $post->ID?>)" 
      id="time<?php echo $post->ID?>'+j+'">' 
      +(valstime[j])+'</button>'+'</td>'; 

Jetzt in jquery

function GetPostID(id) { 
//here is your id 
} 
0

Add "get_time" Klasse in td

var html =''; 
    for (var j=0, n=valstime.length; j<n; j++) 
     { 
     html += ' <tr>'; 
     html += ' <td>'+'<button class="btn btn-default get_time" value="'+(valstime[j])+'" id="time<?php echo $post->ID?>'+j+'">'+(valstime[j])+'</button>'+'</td>'; 
     html +=  '</tr>'; 
     } 
    $("#times<?php echo $post->ID?>").append(html); 


$(document).on('click','.get_time',function(){ 
    // you will get everything here 
    console.log($(this).attr("id")); 
    console.log($(this).text(); 
    console.log($(this).html(); 
}); 

Hoffnung ist es für Sie arbeiten.

Verwandte Themen