0

<td>文字列内のすべてのタグを見つけて赤くするJavaScript関数を作成しようとしています。そうすれば、交際相手のいない誤ったタグを突き止めることができます</td>。私の問題は、ページの html をコピーすると、インデント構造がすべて失われることです。とにかくこの構造を維持することはありますか?

$(document).ready(function(){
   var html = $('body').html(); 

   html.replace('<td>', '<td><span class="red">'); 
   html.replace('</td>', '</td></span>'); 
   $('#result').text(html);
});

http://jsfiddle.net/KL3u3/2/

また、文字列の置換はまったく機能していないようです。しかし、一度に 1 つのこと。

アイデアをありがとう!

4

2 に答える 2

1
$.ajax({
    url: document.location,
    dataType: "html" // get plain source
}).done(function(text) {
    $(function() {
         $("body").text(text).html(function(_, old) {
             return old.replace(/&lt;\/?td&gt;/g, '<span class="red">$&</span>');
         }).css({"white-space":"pre-wrap", "text-align":"left", "font-family":"monospace"});
    });
});
于 2012-11-29T17:55:37.103 に答える
0

文字列置換は、最初に出現したもののみを置換します。グローバル置換を行うには、正規表現を使用する必要があります。

var html = $('body').html(); 
    html = html.replace(/(<td>)/gi, '<td><span class="red">'); 
    html = html.replace(/(<\/td>)/gi, '</span></td>'); 
$('#result').text(html);

フィドル

また、string replace は不変であるため、再度変数に宣言する必要があることに注意してください。

TD を jQuery でラップしないのはなぜですか?

$('body').find('td').wrap('<span class="red" />');
于 2012-11-29T17:14:35.190 に答える