#id ID名
#idは、ID属性名の頭に#を付けた、jQueryセレクタで、最も基本的なセレクタです。このID名にマッチする要素を検索し返します。たとえば、簡単なサンプルを作ってみます。
my1
my2
my3
my3の文字色が赤くなっていると思いますがコードは次のとおりです。
<div id="my1">my1</div> <div id="my2">my2</div> <div id="my3">my3</div> <script type="text/javascript"> jQuery(function($){ $("#my3").css("color","red"); }); </script>$("#my3")にマッチするID名のDOM要素のCSSのcolor(文字色)をred(赤)に変えているわけです。
ちなみに、jQuery(function($){ から });の部分は、以前の記事DOMの構築待ちイベント で出てきた処理で、DOM要素の構築を待ってからfunction(){}内の処理を行うことで、未構築の要素へのアクセスエラーなどを回避する言い回しです。
ところで、セレクタで検索して、処理を行うといっても、#ID名で検索した結果に直接innerHTMLで文字列を出力することはできません。 たとえば、次のような書き方はできないのです。
$("#testId1").innerHTML="hoge<b>hoge</b>" //使えませんセレクタによる検索の結果返されるのは、あくまでも、検索結果を含むjQueryオブジェクトだからです。
たとえば、innerHTMLのようにHTML文字列を出力したいなら、検索結果に.html("HTML文字列")や.append("HTML文字列")のようにしてメソッドを接続して処理を行います。
$("#testId2").html("hoge<b>hoge</b>") ; $("#testId3").append("hoge<b>hoge</b>") ;では、検索結果にHTML文字列を出力するサンプルとして.html()を使ってみます。 次のボタンをクリックしてみてください。
これは、次のコードで動作しています。
<script src="./jquery-1.2.3.min.js" type="text/javascript"></script> <div id="my4"></div> <button onclick=' $("#my4").html("idがmy4の要素を見つけました。"); '>#my4を探します</button>
.html()は、引数の文字列をinnerHTMLのようにHTMLとして該当要素へ出力するメソッドですが、 この場合は、ボタンをクリックすると、$("#my4")で検索されたDOM要素へ"idがmy4の要素を見つけました。"という文字列を 出力しています。
もうひとつ試してみましょう。 もし、IDがピリオドやコロンを含む時は、ダブルのバックスラッシュ(円?記号)でエスケープする必要がありますので、それも試してみましょう。
次のサンプルは、フォントサイズを50pxにするスクリプトで、test3.0とtest4,000 をエスケープしています。
test3.0
test4,000
test5.0
test6,000
コードは次のとおりです。
<div id="test3.0">test3.0</div> <div id="test4,000">test4,000</div> <div id="test5.0">test5.0</div> <div id="test6,000">test6,000</div> <script type="text/javascript"> jQuery(function($){ $("#test3??.0").css("font-size","50px"); $("#test4??,000").css("font-size","50px"); $("#test5.0").css("font-size","50px"); $("#test6,000").css("font-size","50px"); });
次ページでは、タグ名をセレクタに使ってみます。