2012-04-30 39 views
6

mở Tôi đã đoạn mã saulàm thế nào để có được id để hộp thoại

<td><a href="#" id="dialog_link-19" class="ui-state-default ui-corner-all">Click here</a></td> 
<td><a href="#" id="dialog_link-25" class="ui-state-default ui-corner-all">Click here</a></td> 
<td><a href="#" id="dialog_link-33" class="ui-state-default ui-corner-all">Click here</a></td> 
<td><a href="#" id="dialog_link-556" class="ui-state-default ui-corner-all">Click here</a></td> 

#dialog_link được tạo ra tự động.

trong js của tôi Tôi cần phải biết cái nào đã được nhấp.

này là js của tôi

$('#dialog').dialog({ 
      autoOpen: false, 
      width: 600, 
      buttons: { 
       "Ok": function() { 
        $(this).dialog("close"); 
       }, 
       "Cancel": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

     // Dialog Link 
     $('#dialog_link').click(function(){ 
      $('#dialog').dialog('open'); 
      $.ajax({ 
        url: "teams/pp", 
        type: "POST", 
        data: 
        success: function(data){ 

        console.log(data); 

        } 

       }); 

      return false; 
     }); 
+1

Tôi đang bối rối. Ở đâu trong mã này bạn cần biết cái hộp nào đã được nhấp? Và nếu ID được tạo tự động, hãy thực hiện ('#dialog_link'). Nó có vẻ như nó sẽ không nhận được bất cứ nơi nào – Ryan

Trả lời

4

Bạn có thể lấy id của một trong đó được nhấp liek này:

$('a[id*=dialog_link]').click(function(){ 
    var id = $(this).attr('id'); 

    console.log(id); 
}); 
9

Sử dụng id^ thay vì id*, id^ sử dụng để chỉ ra rằng id bắt đầu với văn bản đã cho và số id* phù hợp nếu văn bản đã cho sẵn có trong id, ở bất kỳ đâu, ngay cả ở cuối cùng như id1-dialog_link:

$("td a[id^='dialog_link']").click(function(){ 
    var id = $(this).prop('id'); 
    console.log(id); 
}); 

Ở đây a[id^='dialog_link'] sẽ khớp với dialog_link-19 nhưng không phải id1-dialog_link.

+0

là điều này nhận được nhiều upvotes hơn tôi vì việc sử dụng các prop? Tôi nghĩ mọi người hiểu lầm khi cần sử dụng biện pháp chống đỡ. Trực tiếp từ trang JQuery prop(): Ví dụ, selectIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked và defaultSelected sẽ được lấy ra và thiết lập với phương thức .prop(). Trước jQuery 1.6, các thuộc tính này có thể truy xuất được bằng phương thức .attr(), nhưng điều này không nằm trong phạm vi của attr. Chúng không có thuộc tính tương ứng và chỉ là thuộc tính. – Evan

+0

Tôi nghĩ rằng có một sự khác biệt trong câu trả lời của chúng tôi và chuỗi chọn của nó, bạn đã sử dụng '$ ('a [id * = dialog_link]')' có nghĩa là bất kỳ id nào chứa từ này 'dialog_link' ở bất kỳ vị trí nào trong id và của tôi là' $ ('a [id^= dialog_link]') 'có nghĩa là chỉ các id bắt đầu bằng từ' dialog_link'. –

2

này sẽ trả về số lượng các liên kết nhấp:

$('a[id*=dialog_link]').click(function() { 
    var id = $(this).attr('id').replace('dialog_link-',''); 
    alert(id); 
}); 

Demo

Tôi đã sử dụng các .replace() chức năng để loại bỏ các văn bản

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