У меня есть документ с одним связанным CSS. Как я могу заменить текущий CSS документом из документа, который я только что получил с помощью AJAX-запроса с использованием jQuery?
Вот код, который я сейчас пробую, но пока безуспешно:
$(function() {
$.get('next_page.html', function(data, textStatus) {
$('link[rel=stylesheet]:first')
.attr('href', $(data).find('link[rel=stylesheet]:first').attr('href'));
});
});
Обновление: $ .find () не работает ни в одном браузере (проверено Firefox 3.5,
Chrome и Safari 3 на Mac), но
$ .filter () нашел только таблицу стилей
в Firefox 3.5 - до сих пор ничего не
Chrome и Safari 3.
Это должно быть очень просто, верно - заменить текущий CSS href новым, и вуаля?
По какой-то причине jQuery не может найти что-либо внутри тега <head>
, полученного из запроса AJAX. Более того, jQuery даже не может найти весь <head>
из данных AJAX. Другими словами, $(data).find('head').size()
внутри функции обратного вызова возвращает 0.
Я использую jQuery 1.4.
ОБНОВЛЕНИЕ 10 февраля 2010 г .: Я отправил сообщение об ошибке в jQuery, и они согласились, что невозможно найти что-либо из тега <head>
из данных ajax.
Вот ответ, который я получил:
http://dev.jquery.com/ticket/6061#comment:1 - "Да, правильно - разбор
прямой HTML мы только гарантируем
содержимое элемента body. если ты
хотите получить доступ к XML страницы
прямо тогда я рекомендую вам
явно сделать файл .xhtml или
запросите его как XML, например: "