1つのCSSがリンクされたドキュメントがあります。現在のCSSを、jQueryを使用してAJAXリクエストでフェッチしたばかりのドキュメントからのCSSに置き換えるにはどうすればよいですか?
これが私が今試しているコードですが、今のところ成功していません:
$(function() {
$.get('next_page.html', function(data, textStatus) {
$('link[rel=stylesheet]:first')
.attr('href', $(data).find('link[rel=stylesheet]:first').attr('href'));
});
});
更新: $。find()はどのブラウザでも機能しません(MacでFirefox 3.5、Chrome、Safari 3をテスト済み)が、$。filter()はFirefox3.5でのみスタイルシートを検出しました。ChromeとSafari3ではまだ何も見つかりませんでした。
わかりやすくシンプルなはずです。現在のCSShrefを新しいものに置き換えてください。
何らかの理由で、jQueryは<head>
AJAXリクエストから来ているタグ内の何かを見つけることができません。さらに、jQuery<head>
はAJAXデータからそれ自体全体を見つけることさえできません。つまり、$(data).find('head').size()
コールバック関数内では0が返されます。
私はjQuery1.4を使用しています。
更新2010年2月10日:これに関するバグをjQueryに提出しましたが<head>
、ajaxデータからタグから何も見つけることができないことに同意しました。
これが私が得た応答です:
http://dev.jquery.com/ticket/6061#comment:1 —「その通りです。ストレートHTMLを解析すると、body要素のコンテンツのみが保証されます。ページのXMLに直接アクセスする場合は、ファイルを明示的に.xhtmlにするか、XMLとしてリクエストすることをお勧めします。例: "