次のようなことを行う別の方法は何ですか
$(".myElement").each(function(){
//function
});
プレーンなJavascriptで?
次のようなことを行う別の方法は何ですか
$(".myElement").each(function(){
//function
});
プレーンなJavascriptで?
div
これにより、現在のドキュメント内のすべての が繰り返されます。etc. を置き換えて、それらのand でdocument.getElementsByClassName('someclass')
何かを行うことができますattributes
values
var elements = document.getElementsByTagName('div');
for (var i = 0; i < elements.length; i++) {
doSomething(elements[i]);
}
これがjsfiddleです:http://jsfiddle.net/allenski/p7w5btLa/
$(#myElement)
id
セレクターを反復しようとしています。IDは HTML ページ内で一意である必要があります。
class or element
反復したいタグの場合は、for
ループを使用できます。
var $elems = $('.someClass');
for(var i=0; i< $elems.length; i++ ) {
// $elems[i] --> Gives you a `DOM` element
// $elems.eq(i) --> Gives you a `jQuery` object
}
バニラ Javascript
var elems = document.getElementsByClassName('someClass');
for(var i=0;i< elems.length;i ++) {
elem[i] // Based on index
}
getElementsByTagName
特定のタグを反復処理する場合。
getElementsByName
- name 属性に基づいて要素を取得します。
を使用document.querySelectorAll
してオブジェクトのリストを取得し、それらを反復処理することもできます。
var elems = document.querySelectorAll('.someClass')
for(var i=0; i<elems.length; i++) {
elems[i] // Give you DOM object
}
var el = $(something);
for (var i = 0; i < el.length; i++) {
// do something with el[i] or more often with $(el[i])
}
el
は疑似配列 (または配列のようなオブジェクト) であり、範囲内の演算子でlength
アクセス可能な and 要素を持ちます。などを実行できますが、要素は jquery の「オブジェクト」ではなく、通常は DOM 要素であるため、実行できないことに注意してください。メソッドのように、あなたはしなければなりません[]
0...length-1
el[0]
el[1]
el
el[0].text("Hello")
each
$(el[0]).text("Hello");
するのも間違っています:
for (var i = 0; i < $(something).length; i++) {
// do something with el[i] or more often with $(el[i])
}
このようにして、$(something)
はサイクルごとに再計算されるためです。
for ループを使用する必要があります。http://www.w3schools.com/js/js_loop_for.aspを見て ください。