2016-12-14 11 views
0

多分、この質問は以前には答えられましたが、私は実際にどのようにそれを求めているのかわかりません。私は何をしようとしているのかをあなたに伝えることができます。オブジェクトメソッドを拡張する変数にjQueryネイティブ/ローカルスコープを公開する方法

私はjQueryのセレクタ機能を持つドキュメントオブジェクトの配列を作成し、そのように変数に代入:

var imgArray = $("#rootContainer > img"); 

を今私はjQueryのメソッドのすべてがなくなっている配列を反復するとき。例えば、これは動作しません。

for (i = 0; i < imgArray.length; i++) { 
     var scaledWidth = (imgArray[i].width * 0.5); 
     imgArray[i].width(scaledWidth); 
    } 

エラーのようなものは、標準的なDOMではなく、変数に渡されるjQueryのスコープが渡された場合の関数ではありません。私は純粋なjavascriptで動作するようにコードを得ることができますが、スコープを渡すことができない場合、DOMを抽象化するポイントは何ですか?

+1

試し '$(imgArray).EQ(I).width(scaledWidth);' uは内部エラー 'ないfunction'ラップ変数を持っている場合jqueryセレクタ。 –

+0

".eq(i)" do – zion1129

+0

eq(2)js arr [2]と同じです。2番目の配列項目にアクセスします。 –

答えて

0

私は、配列$(selector)[index]$(selector).get(index)$(selector).eq(index)から必要な要素を取得するには3つの方法を知っている...、uはあなたがjQueryのインスタンスを持っている場合、あなたはjQueryのメソッドを呼び出すことができforeach

$.foreach(imgArray,function (index, img){ 
    scaledWidth = (img.width() * 0.5); 
    img.width(scaledWidth); 
}); 


for (i = 0; i < imgArray.length; i++) { 
    var img = $(imgArray)[i], 
     scaledWidth = (img.width() * 0.5); 
    img.width(scaledWidth); 
} 
+0

jQueryがすべてのメソッドを変数に返すという印象を受けました。その変数に渡されたときにjQueryのスコープが削除されていますか?私の変数imgArrayはjQueryメソッドを使用するためにネイティブな要素しか持っていません。$(imgArray)でスコープに戻す必要がありますか?..申し訳ありませんjQuery noob alert。 – zion1129

+0

変数imgは、現在の画像$(imgArray)[i]のようなコンテナを使用しています。これは少ないコードで使用され、この変数を使用せずに直接$(imgArray)[i]を書くことはできません。スコープについて言う... –

0

を使用することができます。単一のDOMノードがある場合は、ネイティブDOM APIを使用してDOMメソッドを呼び出してDOMプロパティを設定できますが、通常のDOM要素ではjQueryメソッドを使用することはできません。ここで

あなたはより詳細な情報を見つける:

http://james.padolsey.com/stuff/jQueryBookThing/#dom-then-jquery

関連する問題