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関数みたいなやつ

  1. var each = function(val, fnc){  
  2.   if(val instanceof Array || (val.item !== void 0 && val.length !== void 0)){  
  3.   
  4.   
  5.     //配列 or NodeListが渡された時の処理  
  6.     
  7.     for(var i = 0, len = val.length; i < len; i++){  
  8.       //処理  
  9.       fnc(val[i]);  
  10.     }  
  11.   }else{  
  12.   
  13.   
  14.     //単数で渡された時の処理  
  15.     fnc(val);  
  16.   }  
  17. }  

0 件のコメント:

コメントを投稿