2010-05-19 3 views
5

У меня есть список динамически сгенерированных кнопок и идентификатор генерируется во время выполнения. как можно получить идентификатор нажатой кнопки, используя JQuery.Получите идентификатор элемента при нажатии кнопки с помощью jquery

Вот JS код

var btn = " <input type='button' id='btnDel' value='Delete' />"; 


$("#metainfo").append(txt); //set value of 

$("#btnDel").attr("id", "btnDel" + $("#hid").attr("value")); 
+0

добавить класс как 'generateButton' или что бы вы ни пожелали для этой динамически созданной кнопки, а затем вы можете использовать ответ Яна Виллема Б: http://stackoverflow.com/questions/2864327/get-id-of-element-on-button-click-using -jquery/2864340 # 2864340 – jigfox

+0

Почему вы меняете идентификатор кнопки в первую очередь? Я нахожу эту странную вещь, чтобы сделать ... – RoToRa

ответ

23

Для примера это будет выглядеть так:

$("#btnDel").click(function() { 
    alert(this.id); 
}); 

Обратите внимание, что вы не можете закодировать код, который у вас есть, ID должны быть уникальными, вы получите всевозможные побочные эффекты, если это не так, поскольку это неверный HTML. Если вы хотите, обработчик щелчка для любого входного сигнала, изменить селектор, например:

$("input").click(function() { 
    alert(this.id); 
}); 
+0

Все динамические кнопки имеют уникальные идентификаторы, и ваш код не работает. – Xulfee

+0

@Xulfee - вы запускаете его ** до ** вы создаете кнопку, или после ее создания и установки идентификатора? Если это раньше, вам нужно использовать '.live ('click', function() {})' вместо '.click (function() {})' –

1
$('.generatedButton').click(function() { 
    alert(this.id); 
}); 

EDIT после выложили код:

var btn = 
    $("<input type='button' value='Delete' />") 
    .attr("id", "btnDel" + $("#hid").val()) 
    .click(function() { 
     alert(this.id); 
    }); 
$("body").append(btn); 
+0

что такое .generatedButton? – Xulfee

+0

@Xulfee это пример того, как вы можете добавить 'generatedButton' (без точки) в атрибут' class' вашей кнопки, чтобы найти его с помощью jQuery (http://api.jquery.com/class-selector/) – jigfox

+0

код, который вы отправили в своем вопросе, не работает (например, btn var содержит только строку с HTML, которая приведет к кнопке, если она была отображена браузером, но не сама кнопка), но я обновил этот ответ в попытке помочь вам в этом. –

0

Вы должны добавить событие щелчка кнопки после того, как документ будет готов (Loaded):

$(document).ready(function(){ 
    $("#btnDel").click(function() { 
     alert('Button clicked.'); 
    }); 
}); 
+1

Отредактируйте ответ с объяснением! – gsamaras

Смежные вопросы