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").find('a').each(function(){
  $(this).attr('href','#');
});

これであなたの目的は解決すると思います。

于 2012-05-23T16:46:53.370 に答える
0

構文の正確性についてはテストしていませんが、次の行に沿って何かが機能するはずです。

$('#Summary a').each( function() {
   $(this).parent().html($(this).html());
}
于 2012-05-23T16:45:56.813 に答える
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 に答える