这是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.然后有结构:结构/活动/“任何在这里”/“没有在这里” 你可以通过查看上面的代码来了解我的意思。
我的逻辑流程 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');
然后它不起作用。 我只是累了,但需要尽快完成工作。求助。
答案 0 :(得分:2)
我认为你的意思是:
if ($('li').attr('href').match(/.*\/activity\/.*\/$/m)) {
答案 1 :(得分:2)
使用James Padolsey's RegEx filter,我创建了隐藏与您的模式不匹配的this jsfiddle。除RegEx过滤器外,相关代码为
$('a:regex(href, .*/activity/.*/.*)').closest('li').hide();
编辑:我改为.hide();来自设置display:none的.each()。一定要迟到,不知道为什么我原来做的很久了:)
编辑2:将版本7中的jsfiddle更新为版本9.
答案 2 :(得分:2)
也许它解决了你的问题:
$("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
答案 3 :(得分:1)
隐藏除这个以外的所有li,您可以使用此代码...
$('div.div-class ul li').hide();
$(' ul li').each(function(){
if($(this).text()=="THIS")
$(this).show();
});