2011-01-20 57 views
35

昨天晚上我遇到了一個不尋常的情況。jQuery只匹配div的一部分id

我只需要匹配id的一部分。讓我清楚你所有的例子

我有幾個div的像

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

和jQuery是這樣

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

我只需匹配SALES_INFO,忽略_1,_2或_anything ,任何人都可以告訴我如何做到這一點?

感謝

+0

是否要綁定ID爲sales_info_ 的所有div的click事件? – 2011-01-20 05:52:11

+0

@all:謝謝你的建議/解決方案 – 2011-01-20 06:34:57

回答

64

您可以使用"Starts With" selector

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

我寧願給你推薦你的元素使用一個唯一的類名,你可以選擇。

1

或者,將class="sales_info"添加到您的HTML標記中。

然後,這樣做:

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

與此

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

您可以使用CSS選擇器

試試這個代碼

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選擇^=將選擇ID的div與設定值時啓動,並添加CSS樣式。