2012-02-29 79 views
0

我正在使用WordPress和2個不同的插件(圖標每個帖子&頁面和多級導航)。通過第一個插件,我選擇了每頁圖標,第二個插件創建了一個下拉菜單。使用jQuery刪除鏈接文本

事情是我只想顯示頁面圖標,但插件仍然在寫頁面標題。我想用jQuery將其刪除。

這是菜單生成的HTML:

<ul class="children" style="display: none; visibility: hidden; "> 
    <li class="page_item page-item-514"> 
    <a href="http://www.pausoberriak.net/lan-emailea/onurak/?lang=eu"> 
     <img src="http://www.pausoberriak.net/wp-content/uploads/icons/beneficios.png" class="page_icon" alt="Onurak">Onurak</a> 
    </li> 
    <li class="page_item page-item-179"> 
    <a href="http://www.pausoberriak.net/lan-emailea/lan-emailea-formulak/?lang=eu"> 
     <img src="http://www.pausoberriak.net/wp-content/uploads/icons/formulas.png" class="page_icon" alt="Formulak">Formulak</a> 
    <ul class="children" style="display: none; visibility: hidden; "> 
      <li class="page_item page-item-183"> 
      <a href="http://www.pausoberriak.net/lan-emailea/lan-emailea-formulak/praktikak-enpresetan/?lang=eu">Praktikak enpresetan</a> 
      </li> 
     <li class="page_item page-item-186"> 
      <a href="http://www.pausoberriak.net/lan-emailea/lan-emailea-formulak/lanerako-zerbitzuak/?lang=eu">Zerbitzu Okupazionala</a> 
      </li> 
     <li class="page_item page-item-195"> 
      <a href="http://www.pausoberriak.net/lan-emailea/lan-emailea-formulak/kontratazioa/?lang=eu">Kontratazioa</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

我用這個代碼來刪除文本,在這種情況下,應該刪除 「Onurak」, 「Formulak」, 「Praktikak enpresetan」,「Zerbitzu okupazionala」和 「kontratazioa」:

<script type="text/javascript"> 
    jQuery('#suckerfishnav li li a').text(""); 
</script> 

它的工作原理,但它也刪除img標籤和兒童ul。我只想刪除鏈接文本並保留其他內容。

在此先感謝

+2

我沒有看到任何帶有suckerfishnav ID的元素。 – j08691 2012-02-29 15:35:04

回答

2

首先,塊級元素不是內部a元素有效的,即你不能把ul元素中a

可以遍歷所有孩子,只刪除文本節點:

jQuery('#suckerfishnav li li a').contents().each(function() { 
    if(this.nodeType === 3) { 
     this.parentNode.removeChild(this); 
    } 
}); 

jQuery('#suckerfishnav li li a').contents().filter(function() { 
    return this.nodeType === 3; 
}).remove() 

參考:.contentsNode

+0

這個工作,以及? 'jQuery('#suckerfishnav li li a')。contents()。not('*')。remove()' – Zarel 2012-02-29 15:39:47

+0

@Zarel:不,它似乎不起作用:http://jsfiddle.net/P4rPg/但是,我發現另一種方式,請參閱我的更新。 – 2012-02-29 15:42:41

+0

謝謝!我用第一種方法,它的工作原理 – 2012-02-29 16:02:33

0

我試圖使用啓動jQuery的子選擇器,而不是你使用的「#suckerfishnav li li a」。

類似jQuery('#suckerfishnav> li> li> a')可能會有幫助。

http://api.jquery.com/child-selector/