2013-10-25 17 views
7

Hi đây là một câu hỏi jquery:Lấy ID theo tên lớp JQuery

lẽ tôi đã này:

<input type="checkbox" class="select" id ="select-1"> 

<input type="checkbox" class="select" id ="select-2"> 

và tôi muốn nhận được id, các hộp kiểm đã được chọn khi tôi bấm một nút gửi (lưu ý: bạn chỉ có thể chọn 1) và tôi có điều này sự kiện nút bấm vào đây:

$("#submit").click(function(){ 

      if($(".select").is(':checked')){ 

       alert($(".select").attr('id')); 
      } 
}); 

luôn cảnh báo "select-1" ngay cả khi tôi chọn hộp kiểm có id "select-2" .. Tôi đoán vì cả hai đều ở cùng một lớp với lớp ".select" đầu tiên tìm thấy được hiển thị trong cảnh báo .. làm thế nào để tôi nhận được id cụ thể được kiểm tra bằng cách sử dụng tên lớp của họ? Cảm ơn bạn!

+2

bạn nên sử dụng các nút radio. nếu một tùy chọn của nó từ nhiều nút radio =. nếu có nhiều tùy chọn từ nhiều hộp kiểm =. – Dementic

+0

Cập nhật câu trả lời của tôi, thêm bản trình diễn. – Cristy

Trả lời

30

Bạn chỉ kiểm tra một hộp kiểm tại một thời điểm?

alert($(".select:checked").attr('id'));

Hoặc, nếu bạn có nhiều hộp kiểm đã kiểm tra cùng một lúc:

$(".select:checked").each(function(){ 
    alert($(this).attr('id')); 
}); 

Demo: http://jsfiddle.net/UTux2/

2

Bạn chưa chụp hộp kiểm được đánh dấu, bạn chỉ hỏi "là có ai kiểm tra không? ".

$("#submit").click(function(){ 

    var elem = $(".select:checked"); 

    if(elem.length > 0){ 
     alert(elem.attr('id')); 
    } 
}); 
3

Nhận ID bằng cách

$(".select:checked").attr('id'); 

này Cũng nên nhớ rằng nếu chỉ có một có thể được lựa chọn, nó tốt hơn để thay đổi nó để radio.

2
$("#submit").click(function(){ 
      if($(".select").is(':checked')){ 
       var $this=$(".select").is(':checked'); 
       alert($this.attr('id')); 
      } 
}); 
+4

'$ (this') trỏ đến' $ ('# submit') ', do đó, điều này là không chính xác. – Cristy

+0

cập nhật ans ...... –

2

Có nhiều yếu tố. Bạn cần kiểm tra tất cả các hộp kiểm có cùng một lớp

$("#submit").click(function(){ 

      $(".select:checked").each(function(){ 
      alert($(this).attr('id')); 
    }); 

}); 
2

bạn nên sử dụng nút radio và không chọn hộp kiểm để cho phép một trong nhiều lựa chọn.

<input type="radio" name="select" value="select-1"> 
<input type="radio" name="select" value="select-2"> 

sau đó mọi thứ sẽ có được thực sự đơn giản:

$("#submit").click(function(){ 

    alert($('[name="select"]:checked').val()); 
}); 
-1

Bởi vì bạn đã không lặp tất cả các yếu tố trong đó có lớp 'chọn'. Nó luôn luôn đi đến phần tử đầu tiên và in kết quả. Đặt một vòng lặp để lặp lại tất cả các phần tử có lớp 'chọn'.

0

thử một cái gì đó như thế này, bạn không cần phải lặp

 $(document).ready(function() { 
      $("#submit").click(function(){ 
        if($(".select").is(':checked')){ 
         alert($(".select:checked").attr('id')); 
        } 
      }); 
     }); 
Các vấn đề liên quan