jQuery只匹配div中id的一部分

时间:2011-01-20 05:47:21

标签: jquery

昨天晚上我遇到了异常情况。

我只需要匹配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,任何人都可以建议我如何实现这一目标吗?

由于

6 个答案:

答案 0 :(得分:78)

您可以使用"Starts With" selector

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

我建议你为你可以选择的元素使用一个唯一的类名。

答案 1 :(得分:3)

或者,将class="sales_info"添加到HTML标记中。

然后,执行此操作:

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

答案 2 :(得分:3)

试试这个

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

答案 3 :(得分:2)

你想要attribute starts with selector

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

答案 4 :(得分:1)

您可以使用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 selector ^=将选择ID为以指定值开头的div并添加css样式。

答案 5 :(得分:1)

我实际上需要end-with效果并找到了here。 它很容易使用,如下所示:

<script>
$( "input[name$='letter']" ).val( "a letter" );
</script>

您只需在选择器中将^替换为$