0

私はその中のすべてを見つけようとしていliますul

私が行った場合

console.log(element);

firebug で ul 要素の出力を取得します。

console.log(element[0]);私が未定義になった場合。

li今私がしているすべてを見つけようとするul

 $('li', element).each(function (index) {
            console.log(index);
});

しかし、私のインデックスは決して出力されません。

私が行った場合:

$('li', element[0]).each(function (index) {
            console.log(index);
            $(this).data('previousIndex', index);
        });

コンソールに出力されるインデックス数が多すぎます。私のulには3〜4しかありませliんが、誤ったカウントが出力されます。

誰かが私の間違いを教えてもらえますか?

編集:

もっとアイデアを出すために、私はソート可能なプラグインを使用しています。これは、children(). なぜこれが起こっているのかわかりません。

ここに画像の説明を入力

4

2 に答える 2

2

elementはまだDOM要素<ul>であり、jQueryオブジェクトではないと思います。もしそうなら、未定義であってはelement[0]ならないからです。

したがって、でjQueryを操作するにはelement、最初にjQueryでラップしてchildren('li')から、直接の子を取得する<li>find('li')、すべての子孫(ネストされた)を取得するために使用します<li>

//find all children li
$(element).children('li');

//find all descendant li (all nested li)
$(element).find('li');
于 2012-05-29T17:35:31.467 に答える
1

liの唯一の有効な子であるため、 'sプロパティ(またはjQueryのメソッド呼び出し)をul取得できます。ulchildren.children()

于 2012-05-29T17:35:23.757 に答える