jQuery的IDselect开始于特定的文本

我有这个jQuery代码:

$( "#editDialog" ).dialog({ autoOpen: false, show: { effect: "blind", duration: 1000 }, hide: { effect: "explode", duration: 1000 } }); 

但是我有几个ID的ID是这样的:editDialog-0,editDialog-1,….,editDialog-n。

我怎样才能使所有这些div的jQuery代码,就像上面的那个?

使用jquery 属性select器开始

 $('[id^=editDialog]') 

替代解决scheme – 1(强烈推荐)

一个更清洁的解决scheme是添加一个共同的类到每个div和使用

$('.commonClass')

但是,如果html标记不在您的手中,并且由于某种原因无法更改,您可以使用第一个标记。

替代解决scheme – 2 (不build议如果n is a large number )(根据@Mihai Stancu的build议)

$('#editDialog-0, #editDialog-1, #editDialog-2,...,#editDialog-n')

注意:如果有2个或3个select器,并且列表没有改变,这可能是一个可行的解决scheme,但它不是可扩展的,因为我们必须在镇上有新的ID时更新select器。

让我提供一个更广泛的答案考虑到你还没有提到的事情,但会发现有用的。

对于你目前的问题,答案是

 $("div[id^='editDialog']"); 

脱字符(^)取自正则expression式,意思是starts with

解决scheme1

 // Select elems where 'attribute' ends with 'Dialog' $("[attribute$='Dialog']"); // Selects all divs where attribute is NOT equal to value $("div[attribute!='value']"); // Select all elements that have an attribute whose value is like $("[attribute*='value']"); // Select all elements that have an attribute whose value has the word foobar $("[attribute~='foobar']"); // Select all elements that have an attribute whose value starts with 'foo' and ends // with 'bar' $("[attribute^='foo'][attribute$='bar']"); 

上面的代码中的attribute可以改变成元素可能具有的任何属性,比如hrefnameid或者src

解决scheme2

使用类

 // Matches all items that have the class 'classname' $(".className"); // Matches all divs that have the class 'classname' $("div.className"); 

解决scheme3

列出他们(也在以前的答案中指出)

 $("#id1,#id2,#id3"); 

解决scheme4

因为当你改进时,正则expression式(从来没有实际使用过这些, 解决scheme一直是足够的,但你永远不知道!

 // Matches all elements whose id takes the form editDialog-{one_or_more_integers} $('div').filter(function () {this.id.match(/editDialog\-\d+/)}); 

为所有div添加一个公共类。 例如添加foo到所有的div。

 $('.foo').each(function () { $(this).dialog({ autoOpen: false, show: { effect: "blind", duration: 1000 }, hide: { effect: "explode", duration: 1000 } }); }); 

如果你所说的所有的div都以editDialog开始,那么你可以使用下面的select器:

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

或者,如果你更容易使用类select器

 <div id="editDialog-0" class="editDialog">...</div> $(".editDialog")