私は次のようなHTMLがあります。はJQuery:ネストされた要素の最後の子カプセル化する親
//'[popup]' hook nested at random depths, using <ul> or <ol>, no classes or id's
<ol>
<li>Blah</li>
<li>Blah</li>
<li>Foo
<ol>
<li>[popup]Bar</li>
</ol>
</li>
</ol>
を私はポップ/ N、[popup]
フックを対象とし、ポップアップのその<li>
クラスを与えることを望みます。私はその後、その親に(Foo)<li>
の矢印、arr/nの異なるクラスを与えたいと思っています。
var num = 0;
//Find [popup] instances, increment the number
$("li:contains('[popup]') li:last-child").each(function() {
var nextnumber = num++;
//add a general and a unique class to the list item containing the hook
$(this).addClass('popup' + ' ' + 'pop' + nextnumber);
//Get the parent list item, and give it general and unique classes also.
$thisArrow = $(this).parent().parent();
$thisArrow.addClass('arrow' + ' ' + 'arr' + nextnumber);
});
それを越えて深くはなく、1つのレベルのネストされたターゲットに対して何の問題も作業していない。ここで
はコードです。ターゲットは、以下の2つのレベルの深いネストされているリストが表示されたら、次のことが起こる:
<ol>
<li>Blah</li>
<li class="popup pop1 arrow arr1">Blah
<ol>
<li class="arrow arr0">Foo
<ol>
<li class="popup pop0">[popup]Bar</li>
</ol>
</li>
<li class="arrow arr2">Foo
<ol>
<li class="popup pop2">[popup]Bar</li>
</ol>
</li>
</ol>
</li>
</ol>
あなたはそれを見ることができ、最後の(リストでは常に最後のoccurance)を1回:最後の子要素に達しました、何らかの形でその親の親にターゲットと親の両方のクラスが与えられた場合、、次にクラスが追加されました。
誰かが私のエラーを指摘できれば、私はとても感謝しています。
(私は同じ結果に.parents().eq(1);
代わりの.parent().parent()
を試してみました。)
:-)問題を理解していなかった場合、あなたが望んでいた結果を投稿しようとすることができ、私たちは何をあなたにそれを比較することができますを教えDO得た。あなたが達成したいことをちょっと混乱させました。あなたのソースでJsFiddleを作成しました。http://jsfiddle.net/Jg9kv/ –
@Marco Apologies - 実際の使用例です。セクションAは私が望むものであり、セクションDはターゲットが1レベル以上ネストされているときに起こっていることです。 http://databizsolutions.ie/contents/page.php?v=35&u=admin-videos#d – Eamonn