2012-05-01 103 views
-1

我正在构建一个网站,其中包含适用于它的div和样式的公平重击。问题是,有些页面没有子页面,所以subnav是空的,看起来有点奇怪。完全从HTML中删除匹配字符串

我无法找到一个简单的脚本来删除html。

这是我想删除代码:

<div class="sub_nav"><div class="track_nav_style_1"> 
<div class="track_nav_links"> 
<ul></ul> 
</div> 
</div></div> 
+4

你说的是 “剧本” 是什么意思?如果根本没有子页面,为什么要生成二级导航div?首先生成一个空div然后删除它是笨拙的。 –

+0

感谢队友,这个网站有几千页,其中很多页面都有子页面,其中很多页面没有。我们没有资源来确定哪些是做或不做,并且有一个html解析文件可以使用。在这种情况下,笨拙的选项对我们来说是最好的例子,就好像脚本无法启动一样,最糟糕的情况是在页面顶部出现一个空的灰色div。我们拥有的系统不健壮,并且会吐出菜单HTML,无论是否列出项目。另外,通过脚本,我的意思是一个onload javascript。谢谢。 –

+0

你可以使用JS或jQuery检查每个'ul'元素,如果它是空的,删除父项? – Shomz

回答

0

我真的希望我找到了你,如果是这样,我建议使用一个简单的jQuery脚本。 在您的<head>部分包含以下内容。如果下面还有没有<li>

<script type="text/javascript" src="http://www.google.com/jsapi"></script> 
<script language="javascript" type="text/javascript"> 
    google.load('jquery', '1.7.1'); 
</script> 

下面的脚本将删除<ul>容器。

if ($('.track_nav_links ul li').length == 0) 
     $('.track_nav_links ul').remove(); 
+0

如果你让某个人包含jQuery,至少可以提供一个不是血腥无效的jQuery脚本。 – kapa

+0

@bažmegakapa点,愚蠢从jquery.com主页源复制粘贴。现在回答编辑以反映这一点。 – itayw

+0

我不是在谈论包含代码,而是您的代码。为什么你几乎运行相同的选择器两次?在更大的DOM中,这可能会变得相当昂贵。如果你正在向某人介绍jQuery,请尝试以一种熟知的方式介绍。这段代码正是为什么有些人讨厌jQuery。 – kapa

1

我想尝试用CSS做。就像:

.track_nav_links ul{ 
    padding: 0; 
    height: auto; 
    /* background styles and others can be applied, but won't be visible unless the list has content */ 
} 

.track_nav_links ul li{ 
    /* Use the css on these elements to determine height, style etc */ 
} 
+0

谢谢你的回应,这个div的边框和背景设定的高度,所以CSS在这种情况下不起作用。但是,谢谢你花时间回答我的问题。 –

-1

这里有一个Python脚本:

进口OS

snippet = """<div class="sub_nav"><div class="track_nav_style_1"> 
<div class="track_nav_links"> 
<ul></ul> 
</div> 
</div></div>""" 

def remove_code_snippet_from_file(file_name): 
    f = open(file_name, 'r+') 
    old_code = f.read() 
    f.close() 
    f = open(file_name, 'w') 
    f.write(old_code.replace(snippet, '')) 
    f.close() 

if __name__ == "__main__": 
    for file_name in os.listdir(os.getcwd()): 
     if file_name.endswith('.html'): 
      remove_code_snippet_from_file(file_name) 
+0

你怎么知道他使用Python? – kapa

+0

我不知道他使用Python。感谢您提出这一点。 –

+0

嘿队友谢谢你的回应,不幸的是Python对我来说并不好,但是谢谢你的时间。 –