読者です 読者をやめる 読者になる 読者になる

どこぞのエンジニアなマネージャーのブログ。

Perlとかviとかcssとかjavascriptとか(rubyとか)git >> https://github.com/rozary hatenaIDがrozrayなのはtypo

DOMオブジェクトとjQueryオブジェクト。jQueryのeqについて。

javascript jQuery
var divs = $("div");

for (var i = 0; i < divs.length; i++) {
    var div = divs[i];
    console.log(div.attr("name")); //ここでエラー
}

とやると怒られる。(HTMLElement has no method的なエラー。)

理由
attrはjQueryオブジェクトのメソッドだのに、divはDOMオブジェクトだのでそんなメソッドはありません。
$("div")で取得しようが、divsに入っている要素はDOMオブジェクトなのですね。

対処法
jQueryのeqを使う。

var divs = $("div");

for (var i = 0; i < divs.length; i++) {
    var div = divs.eq(i); //配列を指定するのでなく、eqを使って取得
    console.log(div.attr("name"));
}

これでおーけーね。