このページの本文へ

  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

Web制作の現場で使えるjQuery UIデザイン入門 ― 第10回

jQueryでAjaxを利用する基本チュートリアル

2009年09月11日 17時00分更新

文● 西畑一馬/to-R


load()で外部のHTMLを取得/表示する

 先ほどは外部のテキストファイルの内容を取得・表示する方法を紹介しましたが、外部のHTMLファイルの内容を取得・表示したい場合も、同じくload()を使います。

 たとえば次のようなHTMLファイルの内容を取得したいとしましょう。

サンプル02で取得するHTML


<!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" xml:lang="ja" lang="ja">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>sample2</title>
    </head>
    <body>
        <p>変更後</p>
    </body>
</html>


 単純にload()に「sample2_load.html」を指定すると、セレクターで指定したp要素の内側が、sample2_load.htmlの冒頭にある「<!DOCTYPE..」から、末尾の「</html>」までですべて置き換えられてしまいます。


$("p").load("./sample2_load.html");


 これでは困るので、HTMLの場合は、ファイル名(URL)の後ろにCSSセレクターを追加することで読み込みたい場所を絞り込めます。以下の例では、sample2_load.htmlの中のp要素だけを読み込みます。


$("p").load("./sample2_load.html p");


 ただし、上記のコードの場合、元のHTMLのp要素の中身をsample2_load.htmlのp要素に置き換えることになるため、実行すると以下のようにp要素が入れ子になってしまいます。


<p><p>変更後</p></p>


 そこで、次のようにp要素をdiv要素で包み、jQueryのセレクターでは外側のdiv要素を指定します。これなら意図どおり、sample2_load.htmlのp要素を読み込めます。


<div><p>変更前</p></div>


$("div").load("./sample2_load.html p");


サンプル02(HTML+スクリプト部分)


<!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" xml:lang="ja" lang="ja">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
        <meta http-equiv="Content-Style-Type" content="text/css" />
        <meta http-equiv="Content-Script-Type" content="text/javascript" />
        <title>sample2</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
$(function(){
    $("button").click(function(){
        $("div").load("./sample2_load.html p");
    })
})
        </script>
    </head>
    <body>
        <button>変更</button>
        <div><p>変更前</p></div>
    </body>
</html>


この連載の記事

関連記事

Get Microsoft Silverlight
はてブ注目ランキング
  1. 40分で覚える!jQuery速習講座1305 users
  2. Google Analyticsで知ったかぶるための10の方法111 users
  3. YUREXをWindows 7のセンサーに大改造だっ!35 users
  4. ニッチ商材はこうして売る!効率販売の賢いコツ8 users
  5. ミッション:可能な限りOSSをインストールせよ!8 users
  6. もう配色には困らない!「Adobe Kuler」1468 users
  7. 30分でできる!Webサイトを高速化する6大原則1250 users
  8. Web制作会社が作った!超使えるJavaScriptライブラリ1064 users
  9. 黒船Google汐留沖に出現でWeb広告業界に激震!982 users
  10. Web制作に超便利!無料のプロトタイプ作成ツール786 users
最新記事

特設サイト

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

お買い得・バーゲン品情報

Norton Internet Security 2010

Norton Internet Security 2010

シマンテック

5429円~

34%OFF!!

やよいの青色申告 10

やよいの青色申告 10

弥生

7721円~

26%OFF!!

Norton Internet Security 2010 ニコニコパック

Norton Internet Security 2010 ニ…

シマンテック

5462円~

34%OFF!!

一太郎2010 [25周年記念パック] バージョンアップ版

一太郎2010 [25周年記念パック] バージョンアップ版

ジャストシステム

6945円~

17%OFF!!

Adobe Photoshop Elements 8 日本語版 Windows版

Adobe Photoshop Elements 8 日本語版…

アドビシステムズ

1万1340円~

22%OFF!!

Age of Empires III : Complete Collection

Age of Empires III : Complete C…

マイクロソフト

7890円~

20%OFF!!

JUST Suite 2010 [一太郎25周年記念パック] 特別バージョンアップ版

JUST Suite 2010 [一太郎25周年記念パック] …

ジャストシステム

1万2980円~

18%OFF!!

一太郎2010 [25周年記念パック] アカデミック版

一太郎2010 [25周年記念パック] アカデミック版

ジャストシステム

6973円~

17%OFF!!

Office Standard 2007 アップグレード Office 20周年記念 優待パッケージ

Office Standard 2007 アップグレード Of…

マイクロソフト

1万4299円~

20%OFF!!

Norton AntiVirus 2010

Norton AntiVirus 2010

シマンテック

4194円~

32%OFF!!

Amazon.co.jp