Javascript 使用jQuery删除链接文本

Javascript 使用jQuery删除链接文本,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我正在使用WordPress和2个不同的插件(每个帖子和页面的图标以及多级导航)。在第一个插件中,我为每个页面选择一个图标,在第二个插件中,我构建了一个下拉菜单 问题是,我只想显示页面图标,但插件仍然在写页面标题。我想用jQuery删除它 这是为菜单生成的HTML: <ul class="children" style="display: none; visibility: hidden; "> <li class="page_item page-item-514">

我正在使用WordPress和2个不同的插件(每个帖子和页面的图标以及多级导航)。在第一个插件中,我为每个页面选择一个图标,在第二个插件中,我构建了一个下拉菜单

问题是,我只想显示页面图标,但插件仍然在写页面标题。我想用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”:


jQuery('#suckrfishnav li a')。文本(“”);
它可以工作,但也会删除
img
标签和子项
ul
。我只想删除链接文本并保留其他内容


提前感谢

首先,块级元素在
a
元素内无效,即不能将
ul
元素放在
a

您可以迭代所有子节点并仅删除文本节点:

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


参考:

我首先尝试使用jQuery的子选择器,而不是您使用的“#suckrfishnav li a”

类似jQuery(“#suckrfishnav>li>li>a”)的东西可能会有所帮助


我没有看到任何ID为Suckrfishnav的元素。这也可以吗
jQuery('#suckrfishnav li li a').contents().not('*').remove()
@Zarel:No,它似乎不起作用:,但是我找到了另一种方法,请参阅我的更新。
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()