2011-11-14 40 views
8

Tôi đang làm việc trên một số hình thức phức tạp tại thời điểm này.Chọn tất cả các yếu tố đầu vào, nhãn, lựa chọn vv trong THIS - mỗi vòng

Chỉ cần tự hỏi, có cách nào tốt hơn để làm điều này:

$('.selector').each(function(){ 

    $("input", this).prop('disabled', true); 
    $("select", this).prop('disabled', true); 
    $("label", this).prop('disabled', true); 
    $("textarea", this).prop('disabled', true); 

}); 

Tôi muốn chọn tất cả các nguyên liệu đầu vào trong this (hiện looped qua .selector). Tôi có làm điều này đúng không?

+1

Có, về mặt kỹ thuật. Mặc dù câu trả lời của @ BoltClock dưới đây là một cách tốt hơn để làm điều này. – rossipedia

Trả lời

16

Đó là tốt, nhưng để đơn giản hóa nó, bạn sẽ có thể sử dụng dấu phẩy như bạn sẽ vào nhóm bất kỳ selectors khác:

$('.selector').each(function() { 
    $('input, select, label, textarea', this).prop('disabled', true); 
}); 

Nếu điều duy nhất bạn đang làm là thiết lập tài sản đó vào những yếu tố , thì bạn không thực sự cần vòng lặp .each(). Bạn có thể thả an toàn và giảm nó xuống một lớp lót này:

$('input, select, label, textarea', '.selector').prop('disabled', true); 
+0

Là đầu vào bộ chọn '$ ("., Chọn .selector, nhãn .selector, .selector textarea "). Prop ('disabled', true);' equivalent? –

+0

@Brian M. Hunt: Phải vậy. Ngoài ra, '$ ('. Selector') tìm thấy ('đầu vào, chọn, nhãn, textarea'). Prop ('disabled', true);' – BoltClock

+0

Gọn gàng. Tôi tự hỏi nếu có bất kỳ sự khác biệt hiệu suất giữa chúng. –

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