ニュータイプなjQueryその3-HTML要素アクセス
2007年12月23日 プログラミングTIPS
前回、「ニュータイプなjQueryその2-jQuery導入方法」として、jQueryの導入方法を解説しました。
今回は、「ニュータイプなjQueryその3」として、jQueryを利用してHTML要素にアクセスする方法を解説をします。
興味を持ったら、簡単なサンプルを作って、とにかく自分の手で動かしてみることが大切です。
今回は、「ニュータイプなjQueryその3」として、jQueryを利用してHTML要素にアクセスする方法を解説をします。
興味を持ったら、簡単なサンプルを作って、とにかく自分の手で動かしてみることが大切です。
HTMLのtag,id,classについて
HTML要素へのアクセスを解説する前に、HTMLのtag,id,classについて簡単に説明しておきます。HTMLは、複数のHTML要素が入れ子になって構成されています。
以下のHTMLタグと呼ばれるtagを利用します。
このタグには、識別したり操作するためのidやclassを設定することができます。h1,p,div など
idとclassの違いを簡単に説明すると<h1 id="type1">[Z]ZAPAブロ~グ2.0</h1> <p class="type2">ZAPAnet総合情報局管理人ZAPAのブログです。</p> <div class="type2">最近興味があることは、Adobe AIRです。</div> など
- id:同じIDは1ページに1つだけしか利用できない
- class:同じclassを1ページに複数回利用できる
1ページに同じidが2つ存在するのは間違いですが、同じclassが2つあっても問題ありません。
idやclassを付けておくと、CSSでスタイルを指定したり、JavaScriptからアクセスできるようになります。
JavaScriptでHTML要素にアクセスする方法
tagにidを付け、そのidにアクセスしたい場合があるとします。例えば、次のようなHTMLのID:contentにアクセスする場合を考えます。
この時、ID:contentにアクセスするには、JavaScriptを使って、<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>無題ドキュメント</title> </head> <body> <div id="content"> test </div> </body> </html>
などとしてアクセスします。document.getElementById("content")
HTMLファイル内の1つしか存在しないidにアクセスするだけの割には、やや面倒な書き方と言えます。
しかも、tagにアクセスしたり、classにアクセスしたり、AjaxでXMLHTTPRequestを使おうとすると、さらに面倒なことになります。
これらの問題点を簡単にするには、Ajaxライブラリを利用するのが最適です。
次に、jQueryを利用したHTML要素へのアクセス方法を解説します。
jQueryでHTML要素にアクセス
jQueryでHTML要素にアクセスするには、$()関数を利用します。
jQueryを使えば、「document.getElementById」などと書く必要はなく、$()と書くだけでOKです。
$()だけなので、覚えるのがとても簡単です。
$()関数は,CSSの指定と同じように利用できます。(CSSスタイルのほか、XPathによる指定もできます)
次のページに、jQueryを利用したHTML要素アクセスのサンプルページを作りました。 解説は、このブログの以下に続きます。
idにアクセス
HTMLでは、tagにidやclassを設定することができることは前述したとおりです。1ページに1度しか使えないidにアクセスするには、$()関数を利用し、ID名の前に#を付けてアクセスします。
さらに、そのIDの内容をtextで設定するには、次のようにします。
$("#result1")の部分で、ID:result1にアクセスし、text()メソッドでtextを設定しています。//IDにアクセス(ID名の前に#を付けてアクセス) $("#result1").text("<strong>ID:result1を書き換え</strong>");
また、IDの内容をhtmlで設定するには、次のようにします。
$("#result1")の部分で、ID:result1にアクセスし、html()メソッドでhtmlタグを含んだ状態で設定しています。$("#result1").html("<strong>ID:result1を書き換え</strong>");
動作サンプルは次のようになります。
ボタンをクリックしてみてください。
ID:result1
ID:result2
|
jQueryを利用すれば、$()関数でidを簡単に操作することができます。
classにアクセス
次に、1ページに何度でも使えるclassにアクセスする方法を解説します。classへのアクセスも、idへのアクセスと同じように$()関数を利用します。
class名の前に.を付けてアクセスします。
さらに、そのclassの内容をtextで設定するには、次のようにします。
$(".main")の部分で、class:mainにアクセスし、text()メソッドでtextを設定しています。//classにアクセス(class名の前に.を付けてアクセス) $(".main").text("<strong>すべてのclass:mainを書き換え</strong>");
また、classの内容をhtmlで設定するには、次のようにします。
$(".main")の部分で、class:mainにアクセスし、html()メソッドでhtmlタグを含んだ状態で設定しています。$(".main").html("<strong>すべてのclass:mainを書き換え</strong>");
動作サンプルは次のようになります。
ボタンをクリックしてみてください。
class:main
class:もうひとつmain
|
複数回利用されているclassすべてに適用できることが確認できるはずです。
jQueryを利用すれば、$()関数でclassを簡単に操作することができます。
tagにアクセス
次にHTMLを構成するtagにアクセスする方法を解説します。tagへのアクセスも、idやclassへのアクセスと同じように$()関数を利用します。
tag名でそのままアクセスします。
さらに、そのtagの内容をtextで設定するには、次のようにします。
$("p")の部分で、tag:pにアクセスし、text()メソッドでtextを設定しています。//tagにアクセス(tag名だけでアクセス可能) $("p").text("<strong>すべてのpタグを書き換え</strong>");
また、tagの内容をhtmlで設定するには、次のようにします。
$("p")の部分で、tag:pにアクセスし、html()メソッドでhtmlタグを含んだ状態で設定しています。$("p").html("<strong>すべてのpタグを書き換え</strong>");
動作サンプルは次のようになります。
ボタンをクリックしてみてください。
tag:p tag:もうひとつp |
ページ内のpタグすべてに適用できることを確認できます。
jQueryを利用すれば、$()関数でtagを簡単に操作することができます。
id内のclassやtagにアクセス
もっと細かく、id内のclassやtagにアクセスしたいことがあります。jQueryでは、それさえも簡単に実現することができます。
特定id内のclassのアクセスも、ほかと同じように$()関数を利用します。
さらに、そのtagの内容をtextで設定するには、次のようにします。
$("#content1 .main")の部分で、ID:content1のclass:mainにアクセスし、text()メソッドでtextを設定しています。//id内のclassやtagにアクセス $("#content1 .main").text("<strong>ID:result1内のclass:mainを書き換え</strong>");
また、tagの内容をhtmlで設定するには、次のようにします。
$("#content1 p")の部分で、ID:content1のtag:pにアクセスし、html()メソッドでhtmlタグを含んだ状態で設定しています。$("#content1 p").html("<strong>ID:result1内のpタグを書き換え</strong>");
動作サンプルは次のようになります。
ボタンをクリックしてみてください。
class:main
tag:p |
id内のclassやtagに適用できることを確認できます。
jQueryを利用すれば、$()関数でid内のclassやtagを簡単に操作することができます。
ほかの要素の内容をコピー
jQueryでid,class,tagにアクセスするし、内容を設定する方法は以上の通りです。時によっては、ほかの要素の内容を読み取り、そのまま設定したいことがあります。
ほかの要素の内容を読み取るには、text()メソッドやhtml()メソッドの引数を空にして実行します。
ほかの要素の内容をtextで設定するには、次のようにします。
text($("#content1 .main").text())の部分で、id:content1のclass:mainにアクセスし内容を取得しています。//ほかの要素の内容をコピー $("#content2 .main").text($("#content1 .main").text());
その内容をtext()メソッドで$("#content2 .main")にtextで設定しています。
また、ほかの要素の内容をhtmlで設定するには、次のようにします。
html($("#content1 p").html())の部分で、id:content1のtag:pにアクセスし内容を取得しています。$("#content2 .main").html($("#content1 p").html());
その内容をhtml()メソッドで$("#content2 .main")にhtmlで設定しています。
動作サンプルは次のようになります。
ボタンをクリックしてみてください。
class:main
|
ほかの要素の内容をコピーできることを確認できます。
jQueryを利用すれば、$()関数でほかの要素の内容を簡単にコピーすることができます。
今回のまとめ
今回は、jQueryの導入方法とHTML要素にアクセスする方法を解説をしました。$()関数だけ覚えておけば、tag,id,classに簡単にアクセスすることができます。
jQueryには、ほかにもたくさんの機能がありますが、これだけでもjQueryを導入するだけの価値があります。
すべてのサンプルは、
のページで動作させることができます。
実行速度なども体験してみてください。
また、今回の内容は、公式ドキュメントMain Page - jQuery JavaScript Libraryの
辺りに詳しい解説があります。
もっと詳しく知りたい場合は参考にしてみてください(ただし英語ですが)。
続き
次回からは、CSS操作、Ajax、イベント、jQueryエフェクトなどの解説をする予定です。お楽しみに。