2011-01-20 34 views
35

Tôi gặp phải một tình huống bất thường vào tối hôm qua.jQuery chỉ khớp một phần của id từ div

Tôi chỉ cần khớp một phần của id. Hãy để tôi rõ ràng tất cả các bạn với một ví dụ

Tôi có vài divs như

<div id="sales_info_1">... ...... ...... ...... ...</div> 
<div id="sales_info_2">... ...... ...... ...... ...</div> 
<div id="sales_info_3">... ...... ...... ...... ...</div> 

và jQuery đi như thế

jQuery("div#dont_know_what_to_write_here").bind("click", function(){ 
    ... ...... ...... ...... ... 
}); 

tôi cần phải phù hợp với chỉ sales_info, bỏ qua _1, _2 hoặc _anything , bất cứ ai có thể đề nghị tôi làm thế nào để đạt được điều này?

Cảm ơn

+0

Bạn có muốn ràng buộc sự kiện nhấp chuột trên tất cả các div có id sales_info_ không? –

+0

@all: cảm ơn tất cả các đề xuất/giải pháp của bạn –

Trả lời

64

Bạn có thể sử dụng "Starts With" selector:

$('div[id^="sales_info_"]') 

Tôi thà khuyên bạn nên sử dụng một tên lớp độc đáo cho các yếu tố mà bạn có thể chọn mặc dù.

+0

Tại sao bạn đề xuất điều đó? –

+3

Bởi vì nó đơn giản hóa toàn bộ điều và có nhiều ngữ nghĩa hơn. Các lớp xác định rõ ràng rằng phần tử là * loại điều *, trong khi các id được đặt tên tương tự chỉ ngụ ý điều này trong trường hợp tốt nhất. – deceze

+0

tương tự như vậy là có một cách để bỏ qua một id cụ thể trong một phần chọn? – Sridhar

1

Hoặc, thêm class="sales_info" vào đánh dấu HTML của bạn.

Sau đó, làm điều này:

$(".sales_info").bind("click", function() { 
    ... 
} 
2

Hãy thử với điều này

$("div[id^='sales_info_']").bind(...); 
0

Bạn có thể sử dụng css selector

thử mã này

html

<div id="sales_info_1"></div> 
<div id="user_info_1"></div> 
<div id="sales_info_2"></div> 
<div id="user_info_2"></div> 
<div id="sales_info_3"></div> 
<div id="user_info_3"></div> 

css

.red{ 
    display:block; 
    float:left; 
    width:50px; 
    height:20px; 
    background-color:#FF0000;} 
.blue{ 
    display:block; 
    float:left; 
    width:50px; 
    height:20px; 
    background-color:#0000FF;} 

jquery

$('div[id^="sales"]').addClass('red'); 
$('div[id^="user"]').addClass('blue'); 

css selector ^= sẽ chọn div với ID bắt đầu bằng giá trị quy định và thêm phong cách css.

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