if タグ記事

jQuery ifによる要素の判定

2008-11-27 (木)カテゴリJavascript, jQueryタグ, ,

jQueryでのif

いやはや、jqueryやっていて今更気づきました。
気づかず別の手法でやっていた自分も恐ろしいですが、考えてみれば当然なのです。

Java Script
$("#test")

上記では”test”のid属性を持っているタグを取得するjQueryの作法です。
通常Javascriptで変数などを扱って値の有無で処理を変える場合

Java Script
var test;
if(test){
 //処理内容
}

とすると思います。上記のように変数の有無で処理内容を実行するかどうかを決めるのです。
じゃあjQueryでも。。

Java Script
if($("#test")){
 //処理内容
}

これじゃ駄目なのです!
jQueryだと$(“”)にてjQuery独特のオブジェクトを取得するので、true,falseは返ってきません。
なのでif文で囲っても無駄。じゃあどうすれば良いの?

Java Script
if($("#test").length){
 //処理内容
}

上記が正解です。そのオブジェクトがいくつあるのかがlengthで返ってくるので、id=”test”がない場合は0が、複数ある場合は1,2,3,…と返ってくるわけです。

考えたら当たり前なのですが、意外と陥りがちな所かと。
自分は1年近くjQueryやってて気づきませんでしたorz
これからはlength使うべし。自分メモ。

この本、なかなか見直し勉強には良かったです。