Замена HTML-тега с помощью JQuery - PullRequest
0 голосов
/ 15 ноября 2010

Хорошо, поэтому после вызова запроса AJAX Get «success» и передачи строки «data», которая содержит html запрошенного сайта.Теперь я хочу извлечь все из тега <body> текущего сайта и заменить его всем тегом <body>, который хранится в строке данных.Как это сделать?

Я пытался var b = $(data).find('body');, а затем .replaceWith(b), но b, по-видимому, является объектом.

Спасибо за вашу помощь!

Редактировать;Аякс:

$.ajax({
        type: "GET",
        url: "managefiles.php",
        dataType: "html",
        success: function(data){
          ...
        }
     });

Ответы [ 4 ]

4 голосов
/ 15 ноября 2010

Все, что вам нужно сделать, это заменить html() тега body

$("body").html($(data).find("body"));

http://api.jquery.com/html/

2 голосов
/ 15 ноября 2010

Это может быть немного сложно, потому что браузеры ведут себя по-разному в ситуации, когда вы передаете весь HTML-документ в объект jQuery.

В зависимости от того, какой браузер вы используете, некоторые теги (включая <body>)в некоторых случаях) будет удалено.

Хотя вы можете просто добавить весь HTML-документ к текущему <body> и надеяться, что браузер поступит правильно, было бы лучше, чтобы ваш сервер возвращал толькосодержимое, которое вы на самом деле хотите.


РЕДАКТИРОВАТЬ: Если вы не можете изменить HTML, исходящий из источника, вы можете попробовать это, чтобы сделать его немного более безопасным:

var $data = $(data);
var $contents;

if( $data.filter('body').length ) {
  $contents = $data.filter('body').contents();
} else if( $data.find('body').length ) {
  $contents = $data.find('body').contents();
} else {
  $contents = $data;
}

$(document.body).empty().append( $contents );
2 голосов
/ 15 ноября 2010

$ ( 'тело') HTML (данные).

2 голосов
/ 15 ноября 2010

Добавить его к body

$("body").empty(); // clear
b.appendTo("body"); // append new
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...