jquery
2010-05-19 4295 views 5 likes 
5

tôi có danh sách các nút được tạo động và id được tạo trên thời gian chạy. làm thế nào có thể nhận được id của nút bấm bằng cách sử dụng JQuery.Lấy id của phần tử trên nút bấm bằng cách sử dụng jquery

Đây là mã js

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


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

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

thêm một lớp như 'generatedButton' hoặc bất kỳ thứ gì bạn muốn cho các nút được tạo động này, và sau đó bạn có thể sử dụng câu trả lời của Jan Willem B: http://stackoverflow.com/questions/2864327/get-id-of-element-on-button-click-using -jquery/2864340 # 2864340 – jigfox

+0

Tại sao bạn thay đổi id của nút ở địa điểm đầu tiên? Tôi thấy rằng một điều kỳ lạ để làm ... – RoToRa

Trả lời

23

Ví dụ của bạn nó sẽ là như thế này:

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

Lưu ý rằng bạn không thể lặp lại mã bạn có, ID phải là duy nhất, bạn sẽ nhận được tất cả các loại tác dụng phụ nếu không, vì đó là HTML không hợp lệ. Nếu bạn muốn có một bộ xử lý nhấp chuột cho bất kỳ đầu vào, thay đổi bộ chọn, như thế này:

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

Tất cả các nút động đều có id duy nhất và mã của bạn không hoạt động. – Xulfee

+0

@Xulfee - Bạn có đang chạy nó ** trước khi bạn tạo nút hoặc sau khi tạo và đặt ID không? Nếu trước đó, bạn sẽ cần sử dụng '.live ('click', function() {})' thay vì '.click (function() {})' –

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

EDIT sau khi bạn gửi mã:

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

.generatedButton là gì? – Xulfee

+0

@Xulfee đây là một ví dụ về cách bạn có thể thêm 'generatedButton' (không có dấu chấm) vào thuộc tính' class' của nút của bạn để tìm nó với jQuery (http://api.jquery.com/class-selector/) – jigfox

+0

mã bạn đăng trong câu hỏi của bạn không hoạt động (ví dụ: btn var chỉ chứa chuỗi có HTML sẽ dẫn đến nút nếu được trình duyệt hiển thị, nhưng không phải nút), nhưng tôi đã cập nhật câu trả lời này trong một nỗ lực để giúp bạn với nó. –

0

Bạn nên thêm sự kiện click của nút sau khi tài liệu đã sẵn sàng (Loaded):

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

Chỉnh sửa câu trả lời với lời giải thích! – gsamaras

Các vấn đề liên quan