2

我有一张表,我想导出到 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”的情况下导出上述内容,但也许这是不可能的?

谢谢!

4

6 回答 6

8

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

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

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

如果您只想使用纯文本,那也很容易实现:

$('#summary a').replaceWith(function() {
    return $.text([this]);
});
于 2012-05-23T16:45:45.953 回答
6

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

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

工作小提琴

$.unwrap()

于 2012-05-23T16:47:33.810 回答
2

试试这个:

$('th a').each(function(){
   $(this).replaceWith($(this).text())
})
于 2012-05-23T16:45:41.040 回答
0

我还没有测试语法的正确性,但是,这些方面的东西应该可以工作:

$('#Summary a').each( function() {
   $(this).parent().html($(this).html());
}
于 2012-05-23T16:45:56.813 回答
0
$("#Summary").find('a').each(function(){
  $(this).attr('href','#');
});

我相信这将解决您的目的。

于 2012-05-23T16:46:53.370 回答
0
$('.surveyTable tr th a, .surveyTable tr td a').each(function(){
   $(this).replaceWith($(this).text());
});​

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

于 2012-05-23T16:50:11.717 回答