如何使用JQuery或JavaScript删除表中的所有链接?

时间:2012-05-23 16:41:39

标签: javascript jquery

我有一个表格,我想导出到Excel,但我不希望任何超链接通过。这可能吗?

我注意到线程中正在做类似的事情 JQuery remove images但我认为它与我需要的完全不同?

我还想在可能的情况下将文字保留在标签内?

示例:

<table class="surveyTable" id="Summary">
    <tr>
        <th>Section</th>
        <th title="3584">
            <a href="test.php?id=3584">
                Call 1
            </a>
        </th> ...

我希望能够在没有href但仍保留“Call 1”的情况下导出上述内容,但也许这是不可能的?

谢谢!

6 个答案:

答案 0 :(得分:7)

是的,这应该相当简单,使用replaceWith的函数回调签名:

$('#summary a').replaceWith(function() {
    return this.childNodes;
});

删除每个a元素,并用其所有子节点替换每个元素。这意味着您可以保留任何格式。

如果你想要纯文本,那也很容易实现:

$('#summary a').replaceWith(function() {
    return $.text([this]);
});

答案 1 :(得分:6)

您可以使用以下代码轻松完成此操作,jQuery将处理所有a的循环,并将其替换为其中的文本。

 $('#Summary a').contents().unwrap();

Working Fiddle

$.unwrap()

答案 2 :(得分:1)

试试这个:

$('th a').each(function(){
   $(this).replaceWith($(this).text())
})

答案 3 :(得分:0)

我没有测试语法正确性,但是,这些内容应该有效:

$('#Summary a').each( function() {
   $(this).parent().html($(this).html());
}

答案 4 :(得分:0)

$("#Summary").find('a').each(function(){
  $(this).attr('href','#');
});

我相信这会解决你的目的。

答案 5 :(得分:0)

$('.surveyTable tr th a, .surveyTable tr td a').each(function(){
   $(this).replaceWith($(this).text());
});​

http://jsfiddle.net/qTB8E/3/