2011-05-12 69 views
2

有一個任務我想要做的,刪除具有相同前綴的div。刪除相同的前綴編號div

<div id="random-asadf12s"></div> 
<div id="random-afsdf123"></div> 
<div id="random-xcvsd121"></div> 
<div id="random-1edffxcx"></div> 
<div id="random-56hgrgry"></div> 
<div id="random-546fgfgh"></div> 
<div id="random-gfh754yy"></div> 
<div id="random-fghfghrt"></div> 

這些div由某些js生成。

在jQuery中,我可以使用jQuery("#id").remove();刪除某個元素。但如果我不知道元素的確切ID,我怎麼能做同樣的事情呢?

+0

在您的js函數中,您是否可以包含一個與所有這些div一致的「name」屬性?如果是這樣,你可以使用這個屬性來查找/刪除所有這些div。 – Kyle

回答

3

您可以使用attribute starts with selector

$('div[id^="random-"]').remove(); 

這可能是更好,因爲jQuery的可以在此選擇直接傳遞到在新的瀏覽器querySelectorAll(雖然我不知道它實際上做的話)。

或者您可以使用attribute contains prefix selector

$('div[id|="random"]').remove(); 
1

我想這應該做的伎倆:

$("[id^=random-]").remove(); 
1

如何過濾? 。

$( '格')濾波器(函數(){返回 /^random-/.test(this.id);})

+0

我覺得這樣也不錯。 http://api.jquery.com/attribute-starts-with-selector/ – allenhwkim

1

您可以使用.filter()函數(見小提琴:http://jsfiddle.net/VG5BP/):

(function(){ 
    $('#test').click(function(event){ 
     event.preventDefault(); 
     $("body > div").filter(function() { 
      return $(this).attr('id').match(/^(random-)/); 
     }).remove(); 
    }); 
})(); 

代替「body> div」,您可以爲要檢查的元素添加選擇器,並可能刪除其中的一些元素。檢查小提琴,它的工作原理。