2012-04-11 27 views
5

Cần một chút giúp đỡ với jquery của tôi ở đâyJquery selectors

Tôi muốn tất cả các nút của tôi với một tên bắt đầu bằng "may-" và kết thúc với "-Bấm" để có một sự kiện "click".

<input type="button" id="my-button-x-press" name="my-button-x-name-press" /> 

Nút được thêm động vào DOM phải có cùng sự kiện.

Trả lời

10

http://api.jquery.com/category/selectors/

$('input[type=button][name^=my-][name$=-press]').click(function() { 
    // code 
}) 

Để gán sự kiện đến các yếu tố động, sử dụng onhttp://api.jquery.com/on/ và cung cấp chọn của bạn như là đối số thứ hai để đúng delegate sự kiện.

$('#container').on('click', 'input[type=button][name^=my-][name$=-press]', function() { 
    // code 
}) 

Giả sử bạn đang quấn đầu vào của bạn trên #container, nếu không thay thế #container với body, nhưng nó luôn luôn thích hợp hơn để chọn tổ tiên gần nhất của selector

0

cung cấp cho họ tất cả một lớp học và làm:

$('.classname').click(function(){etc.}); 
0

bạn có thể làm điều đó như thế này

$('#my-'+dunamic_change_here+'-press').click(function(){ 
    // your code 
}); 
0

Off đỉnh đầu của tôi:

$('input[name^="my-"]input[name$="-press"]').click(function(){ 
    //Stuff to happen. 
}); 

Nếu họ được tự động thêm vào the dom:

$('input[name^="my-"]input[name$="-press"]').on('click', function(){ 
    //Stuff to happen. 
}); 

M atpols câu trả lời có lẽ là cách đơn giản nhất để làm điều đó thực sự.

+0

Nếu đầu vào được chèn động, thì 'on()' sẽ phải được ràng buộc với phần tử tổ tiên, không phải phần tử được chèn động. –

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