2012-05-01 101 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對我來說並不好,但是謝謝你的時間。 –