[英]Jquery and Regex help needed
這是HTML
<div id="taxonomylist">
<div class="item-list"><ul><li class="first"><a href="/?q=category/activity/energy" class="views-processed">Energy</a></li>
<li><a href="/?q=category/activity/energy/3-5" class="views-processed">3-5</a></li>
<li><a href="/?q=category/activity/energy/6-8" class="views-processed">6-8</a></li>
<li><a href="/?q=category/activity/energy/k-2" class="views-processed">K-2</a></li>
<li><a href="/?q=category/activity/forestry" class="views-processed">Forestry</a></li>
<li><a href="/?q=category/activity/forestry/3-5" class="views-processed">3-5</a></li>
<li><a href="/?q=category/activity/forestry/6-8" class="views-processed">6-8</a></li>
<li><a href="/?q=category/activity/forestry/k-2" class="views-processed">K-2</a></li>
<li><a href="/?q=category/activity/mining" class="views-processed">Mining</a></li>
<li><a href="/?q=category/activity/mining/3-5" class="views-processed">3-5</a></li>
<li><a href="/?q=category/activity/mining/6-8" class="views-processed">6-8</a></li>
<li class="last"><a href="/?q=category/activity/mining/k-2" class="views-processed">K-2</a></li>
</ul></div></div>
我需要隱藏除div之外的所有元素。 我需要保留那個。 因此,對於正則表達式解析-我需要它僅顯示以下值:1.從任何內容開始2.然后具有以下結構:structure / activity /“此處有任何內容” /“此處無任何內容”上面的代碼。
我的邏輯流程1.隱藏特定div中的所有li元素2.如果li內的'a'元素包含等於/ title /的屬性href,則顯示此li元素。 我當前的代碼
$('li').css('display','none');
if ($('li').attr('href')=="*/activity/*/")
{
$('li').css('display','block');
}
如果我做類似的事情:
$('#div-id li').css('display','none');
那就行不通了。 我只是累了,但需要盡快完成工作。 請幫助。
我想你的意思是:
if ($('li').attr('href').match(/.*\/activity\/.*\/$/m)) {
使用James Padolsey的RegEx過濾器 ,我創建了這個jsfiddle來隱藏與您的模式不匹配的jsfiddle 。 除了RegEx過濾器外,相關代碼是
$('a:regex(href, .*/activity/.*/.*)').closest('li').hide();
編輯:我改為.hide(); 來自設置了display:none的.each()。 一定要遲到了,不知道為什么我原本要走這么長的路:)
編輯2:將jsfiddle從版本7更新到版本9。
也許它可以解決您的問題:
$("div#div-id li").each(function() {
var href = $("a", this).attr("href");
if ( href.match(/^.*\/activity\/.*\/$/i) ) {
alert($(this).text());
}
});
在jsbin上查看演示: http ://jsbin.com/ozive4/2/edit
更新:這只是一個基本原則。 這是更完整的內容:
jQuery(function($) { function get() { $("div#div-id li").each(function() { var href = $("a", this).attr("href"); if ( href.match(/^.*\/activity\/.*\/$/i) ) { alert($(this).text()); } }); } $("button").click(function() { get(); }); });
和演示: http : //jsbin.com/ozive4/4/edit
更新:這是正則表達式:
/^.\/activity\/.[a-z,A-Z]$/i
以及新的演示: http : //jsbin.com/ozive4/6/edit
隱藏所有鋰除了這一點 ,你可以使用此代碼...
$('div.div-class ul li').hide();
$(' ul li').each(function(){
if($(this).text()=="THIS")
$(this).show();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.