2009-07-30 100 views
86

我試圖找到元素ID包含特定文本的頁面上的所有元素。然後,我需要根據它們是否隱藏來過濾找到的元素。任何幫助是極大的讚賞。使用jQuery查找元素ID包含特定文本的頁面上的所有元素

+0

可能重複的[jQuery選擇正則表達式](http://stackoverflow.com/questions/190253/jquery-selector-regular-expressions) – 2011-08-31 09:39:33

回答

144
$('*[id*=mytext]:visible').each(function() { 
    $(this).doStuff(); 
}); 

注意選擇器matches all elements開頭的星號'*'。

請參閱Attribute Contains Selectors以及:visible:hidden選擇器。

+8

也許值得提到在匹配一個元素的`id`時,你不使用引號,當匹配一個`name`的時候,你會這樣做。 `$('* [name * =「myname」]:visible')`不是最直觀的,並且讓我很早就接觸到了。 – ficuscr 2013-10-03 01:55:01

14

這將選擇所有div包含「富」的ID和可見

$("div:visible[id*='foo']"); 
+0

如果即時搜索文本框元素而不是divs,它只是$(「input:visible [id * ='foo']」); ? – user48408 2009-07-30 13:58:39

5

多虧了你們倆。這對我來說非常合適。

$("input[type='text'][id*=" + strID + "]:visible").each(function() { 
    this.value=strVal; 
}); 
90

如果你被發現包含那麼它會是這個樣子

$("input[id*='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

如果你被開始有了找到那麼它會是這個樣子

$("input[id^='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

如果你找到結束那麼它會是這樣的

 $("input[id$='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

如果你想選擇的元素如果你想選擇哪個id包含給定的字元素,通過空格分隔這ID不是一個給定的字符串

$("input[id!='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

 $("input[id~='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

如果您想選擇其中id等於給定s特林或以該字符串後跟一個連字符起始

 $("input[id|='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 
相關問題