我有以下代码。
现在我需要从标记中删除文字,您可以在其中找到“Google必须消失”文字
该行的输出必须为
<a title="" href="http://www.google.com"></a>.
我试图选择一个标签,但我不能只获得那个标签。 我总是得到所有的标签。 我尝试了以下每个循环。 但没有任何结果。
我无法在该标签上设置任何类来控制,因此这不是一个选项。
$('ul.menu li.dhtml-menu').each(function() {
});
$('ul.menu li.dhtml-menu a').each(function() {
});
答案 0 :(得分:5)
如果您只想删除锚标记的内部文本,则需要遍历div
中的所有锚标记,并检查其text()
值。
jQuery的:
$('#content a').each(function() {
if ($(this).text() == 'Google Must disappear')
$(this).text('');
});
jsFiddle上的工作示例。
编辑OP的注释:由于您希望根据结构而不是内部文本操作元素,因此我强烈建议您重新设置标记,使其首先生效。由于您的标记现在是正确的,将li
直接嵌套在li
内会导致Firefox关闭第一个li
标记:
我会首先更改标记,而不是编写一些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并隐藏它。
<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;
});
});