2012-02-29 83 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/