如何从HTML中删除特定文本

时间:2013-05-16 03:27:55

标签: javascript jquery text

我想删除前5个链接(完整<a>...</a>)。还有所有管道(“|”)。

<p> | <a href="/node/1">link 1</a>  
    | <a href="/node/2">link 2</a>  
    | <a href="/node/3">link 3</a> 
    | <a href="/node/4">link 4</a> 
    | <a href="/node/5">link 5</a> 
    | <a href="/node/6">link 6</a>  </p>

这是我到目前为止所做的:

$(".main p a:lt(4)").hide();

修订1 ------

越来越近我想到了这个 -

$('.main p a').html( $('.main p a').html().replace(/|/gi,'') );

修改2 ------

由于你的好主意,这里终于为我工作了! hi:contains有助于确保它不会开始破坏我的所有页面。

   if($('h1:contains("some specific text")')){
        $(".main p a:lt(4)").hide();
        $('.main p').html($('.main p').html().replace(/\|/g, ''));
    }    

4 个答案:

答案 0 :(得分:1)

尝试

$(".main p a:lt(4)").hide();

$('.main p').contents().filter(function(){
    return this.nodeType == 3 && $.trim($(this).text()) == '|';
}).remove();

演示:Fiddle

答案 1 :(得分:0)

删除所有'|'管道

$("p").html().replace(/\|/g,"");

$("p").html($("p").html().replace(/\|/g,""));

如果您需要删除单个链接,

$("p a").eq(1).remove();

删除前5个链接,

$("p a:lt(5)").remove();

请参阅小提琴:http://jsfiddle.net/Te6ad/

答案 2 :(得分:0)

这将取代吧。

$('p').html($('p').html().replace(/\|/g, ''));

替换吧。

JS小提琴:http://jsfiddle.net/gjWSc/1/

我不明白你想删除哪些链接..

答案 3 :(得分:0)

根据我对您的问题的理解,以下是您的问题的答案:

Html代码:

<p> 
    | <a id="1" href="/node/1" class="link">link 1</a>  
    | <a id="2" href="/node/2" class="link">link 2</a>  
    | <a id="3" href="/node/3" class="link">link 3</a> 
    | <a id="4" href="/node/4" class="link">link 4</a> 
    | <a id="5" href="/node/5" class="link">link 5</a> 
    | <a id="6" href="/node/6" class="link">link 6</a>  

</p>

脚本:

<script type="text/javascript" src="jquery-1.7.1.js"></script>
<script>
    var i = 0;
    $('.link').each(function () {
        var id = $(this).attr('id');
        $('p').html($('p').html().replace('|', ''));
        $('#' + id).hide();
        if(i==3)
        {
            return false;
        }
        i++;
    });
</script>

如果我错了,请纠正我......