Почему этот jQuery не может загрузить / разобрать мою строку HTML? - PullRequest
0 голосов
/ 18 сентября 2009
jQuery.get(window.location.href, function(data) {
  alert(data);
  alert($(data).html());
});

Первое всплывающее окно - это HTML, хороший и здоровый.

Второе всплывающее окно пустое. Зачем? (HTML соответствует XHTML)

Ответы [ 4 ]

3 голосов
/ 18 сентября 2009

Из документации :

Строка HTML не может содержать элементы, которые недопустимы в div, такой как html, head, body или элементы заголовка.

Если вы извлекаете полный HTML-документ, у вас будет много элементов, которые могут не отображаться в div.

0 голосов
/ 18 сентября 2009

Измените свой код на что-то вроде этого

$('#yourContainingDiv').html(data);

HTML в данных будет помещен в тег div

0 голосов
/ 18 сентября 2009

Я попробовал это на моем ПК. Вы получаете следующее:

"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1"><title>

</title><link href="App_Themes/selectors.css" rel="stylesheet" type="text/css" /></head>................etc

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

Полагаю, если вам действительно нужен элемент в HTML, вы можете удалить его из текста, используя встроенные строковые методы.

0 голосов
/ 18 сентября 2009

Потому что он вернет строку со всем HTML. data не является объектом jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...