2011/11/08

[JavaScript] querySelectorAllなどで取得するNodeListと配列を判定する

jQueryなんかのライブラリを使ってる場合は必要ないかも…

自作でjQueryとかのeach関数みたいなやつを作った時にちょっとひっかかったのでメモ

instanceof Arrayだけで判定するとquerySelectorAllで取得できるNodeListはfalseになる。

配列 or NodeListを判定するには
if(valinstanceof Array || (val.item !== void 0 && val.length !== void 0))




ちなみに自作のeach関数みたいなやつ

var each = function(val, fnc){
  if(val instanceof Array || (val.item !== void 0 && val.length !== void 0)){


    //配列 or NodeListが渡された時の処理
  
    for(var i = 0, len = val.length; i < len; i++){
      //処理
      fnc(val[i]);
    }
  }else{


    //単数で渡された時の処理
    fnc(val);
  }
}

0 件のコメント:

コメントを投稿