0

他のdivが動的に入力されるdivがあります...

<div id="wrapper">

</div>

//javascript 
 for(//a bunch of times){
  var d = document.cloneNode('divModel');
  d.foo = {//bunch of stuff };
  document.getChildById('wrapper').appendChild(d) is applied later to fill in child divs
}

ここで、ラッパーの子をループして、そのfooで何かを実行したいと思います。

通常のJavaScriptで行う場合

document.getElementById('wrapper').childNodes[x].foo

それは私が期待するように機能します

でも

$('#wrapper').each(function (i, element){
      console.log(element.foo); //foo here is undefined
})

未定義の束になります

つまり...jQueryは、実際にはdivを直接処理するのではなく、divの内部ラッパーを処理していると思います。カスタムfooにアクセスするために、このループ内の実際のdivにアクセスする方法(または可能であれば)に興味があります。

編集 これまでのすべての回答に基づいて(そして時間をありがとうございました)、明確にする必要があると感じています。誰もが私の実際の質問を見逃しているようです...上記のコードをより明確にするために変更しました。

(実際のコードでは)構文エラーはありません。jQueryはラッパーの子を正しく循環し、実際の子(div)を返さないだけで、独自のバージョンを返します。このカスタムバージョンには、追加されたfooが含まれていません。

したがって、必要なのは、実際のdomオブジェクトに戻ることができることであり、その周りのjQueryラッパーではありません。これは可能ですか?

4

4 に答える 4

2

あなたは子供たちを忘れました(そして言及されたように「#」):

$('#wrapper').children().each(function (i, element)...
于 2012-10-20T07:32:29.880 に答える
1

セレクターがオフになっていることを除けば、その通りです。が必要$("#wrapper")です。

$("#wrapper").each(function(i,e) { console.log(e.id) });

編集

DOM 要素からオブジェクトを取得できることを確認しています ...

var c = document.getElementById('container');
var el = document.createElement('div');
el.id = 'new';
el.innerText='the test element';
el.test = { hello: "world" };
c.appendChild(el);
console.log('javascript: ' + document.getElementById('new').test.hello);
$("#container div").each(function(i,e) {
    if (e.test) console.log('jquery: ' + e.test.hello);
});

http://jsfiddle.net/eeYHr/3/ </p>

于 2012-10-20T07:31:31.647 に答える
0

あなたのためのいくつかのオプション:

$('#wrapper').children().each(function (i, element) { ... });

$('#wrapper > *').each(function (i, element) { ... });
于 2012-10-20T07:35:57.577 に答える
0

または、より明確にするために、子DIVのみに集中していると述べているように:

$('#wrapper div').each( function() {
    // do some funky stuff
    alert($(this).attr('id')); // displays element ID
});

さらに学習するには、次の JQuery ヘルプ ページも参照してください。

http://api.jquery.com/category/selectors/basic-css-selectors/

于 2012-10-20T07:37:32.227 に答える