ajaxを使うと、Javascriptを使ってホームページを再度読み込まなくても、サーバーとデータをやり取りをして表示を変更することができます。
.loadを使う
サンプルでnews.htmlの中の#news要素を読み込ませます。
jquery
$(function(){ $("button").click(function(){ $(".load").load("news.html #news"); }); });
$("button").click(function(){
要素buttonをクリックしたときに命令が行われます。
$(".load").load("news.html #news");
セレクタで選んだ.loadの部分に
news.htmlの#newsを読み込ませて表示しています。
別ページにある部分を読み込ませたいという時にも使えますよ。
.ajaxを使う
サーバーからのリクエストやレスポンスを行うことができるメソッドです。
今回はこのホームページのRSSをサンプルで読み込んで表示させてみます。
jquery
$(function(){ var options = { url:'feed.xml', dataType:'xml', success:function(data){ $("item",data).each(function(){ $("dl").append("<dt><a href='" + $("link",this).text() + "'>" + $("title",this).text() + "</a></dt>"); }); }}; $("button").click(function(){$.ajax(options);}); });
ajaxでは、いろいろなオプションを設定することができます。
url
読み込むurlを記述します。今回はfeed.xmlを読み込みます。
dataType
読み込むdateのタイプを指定します。今回はxml
success
読み込みが成功したときに行うことを指定します。
function(data){
xmlのデータを読みこんでいます。
$("item",data).each(function(){
xmlデータ中の<item></item>にある数だけ命令を実行します。
$("dl").append("<dt><a href='" + $("link",this).text() + "'>" + $("title",this).text() + "</a></dt>");
htmlでdlの空要素を記述しているのですが、dl要素に対して.appendを使ってhtmlを挿入します。
$("link",this))、$("title",this)はxml中にある<item></item>内の
<link></link>、<title></title>の文字列を.text()を使って読み込んでいます。
$("button").click(function(){$.ajax(options);});
最後にボタンをクリックしたときに$.ajaxに設定したoptionを読み込ませて実行させます。