2011-01-20 56 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样式。