找一个<a> tag and remove text</a>

时间:2011-10-17 13:08:47

标签: jquery

我有以下代码。

http://jsfiddle.net/CtMmT/4/

现在我需要从标记中删除文字,您可以在其中找到“Google必须消失”文字

该行的输出必须为

<a title="" href="http://www.google.com"></a>.

我试图选择一个标签,但我不能只获得那个标签。 我总是得到所有的标签。 我尝试了以下每个循环。 但没有任何结果。

我无法在该标签上设置任何类来控制,因此这不是一个选项。

$('ul.menu li.dhtml-menu').each(function() {


}); 

$('ul.menu li.dhtml-menu a').each(function() {


}); 

4 个答案:

答案 0 :(得分:5)

如果您只想删除锚标记的内部文本,则需要遍历div中的所有锚标记,并检查其text()值。

jQuery的:

$('#content a').each(function() {
    if ($(this).text() == 'Google Must disappear')
        $(this).text('');
});

jsFiddle上的工作示例。

编辑OP的注释:由于您希望根据结构而不是内部文本操作元素,因此我强烈建议您重新设置标记,使其首先生效。由于您的标记现在是正确的,将li直接嵌套在li内会导致Firefox关闭第一个li标记: bad markup

我会首先更改标记,而不是编写一些jQuery来处理这个标记汤。

答案 1 :(得分:1)

这是你要找的吗?

$('ul.menu a').each(function() {
  if($(this).html() == "Google Must disappear")
      $(this).html("");
}); 

答案 2 :(得分:0)

我仍然不明白你在说什么,但如果你想选择一个节点,你可以指定id

像:

<a href="http://google.com" id="googleLink">Google</a>

并按

选择
 $("#googleLink")

否则,您可以在jQuery中使用child selector

答案 3 :(得分:0)

您可以在其周围添加div并隐藏它。

http://jsfiddle.net/mR2Ts/

    <div id='content'>
<ul class="menu">
    <li id="dhtml_menu-759" class="dhtml-menu">
        <li class="leaf dhtml-menu-cloned-leaf">
            <a title="" href="http://www.google.com">Google</a>
        </li> 
        <div id="hide-this">
        <a title="" href="http://www.google.com">Google Must disappear</a>
            </div>
        <ul class="menu">
            <li id="dhtml_menu-760" class="dhtml-menu">
                <a href="http://www.microsoft.com">Microsoft</a>
            </li>
        </ul>
    </li>
</ul>
    <a href="#hide-this" class="close">Clicking here will hide the link</a>
</div>


$(function() {
$('a.close').click(function() {
    $($(this).attr('href')).slideUp();
    return false;
});

});