Если я вас правильно понимаю, возьмите содержимое между тегами тела с помощью регулярного выражения.
$.get($(this).attr("href"), function(data) {
var body=data.replace(/^.*?<body>(.*?)<\/body>.*?$/s,"$1");
$("body").html(body);
});
EDIT
Основываясь на ваших комментариях ниже, вот обновление для соответствия любому тегу тела, независимо от его атрибутов:
$.get($(this).attr("href"), function(data) {
var body=data.replace(/^.*?<body[^>]*>(.*?)<\/body>.*?$/i,"$1");
$("body").html(body);
});
Регулярное выражение:
^ match starting at beginning of string
.*? ignore zero or more characters (non-greedy)
<body[^>]*> match literal '<body'
followed by zero or more chars other than '>'
followed by literal '>'
( start capture
.*? zero or more characters (non-greedy)
) end capture
<\/body> match literal '</body>'
.*? ignore zero or more characters (non-greedy)
$ to end of string
Добавьте переключатель «i» для соответствия верхнему и нижнему регистру.
И, пожалуйста, игнорируйте мой комментарий относительно переключателя 's', в JavaScript все RegExp по умолчанию уже однострочные, чтобы соответствовать многострочному шаблону, вы добавляете 'm'. (Черт возьми, Perl, мешающий мне, когда я пишу о JavaScript!: -)