わかりました、2時間後、これを修正できません...
私は持っている:
<section id="sectionmain"> Section1 <article data-type="mainarticle" class="page-article" id="home-main"> <section> Section2 <nav data-parent="home-main" data-type="mainleft" class="page-left">Nav2</nav> </section> </article> <nav data-type="mainleft" class="page-left"> Nav1 </nav> </section> $("#sectionmain").first().find("[data-type='mainleft']")[0];
参照: http://jsfiddle.net/uYZmq/3/
of#sectionmain
を持つターゲットの子である最初の要素を見つけたいと思います。data-type
"mainleft"
フィドルでわかるように、ネストされた<article>
ブロックがあります。も含まれていますが<nav>
、同じdata-type
ですが、それは必要ありません。最初の出現が必要です。しかし、どういうわけか、firefox と chrome の両方が、2 番目にネストされたものが最初のものであると考えていますが、これは意味がありません。これを回避する方法はありますか?ターゲットの REAL の最初の要素を見つけますか?
.children()
、 、.closest()
および他の組み合わせをすべて試しましたが、何もしませんでした。
これよりも多くのネストがある場合でも機能する必要があります。
要素の id 内を検索して、その子ではなく'its' を見つけたいだけです。したがって、基本的に検索を 1 つのレベルに制限します。<nav>
<nav>
(データ型に同じ名前を付ける必要があります (page-left)。css を介してスタイル設定されます。また、要素に追加のクラスや変数を追加したくありません)
/edit: [0] を [1] にしたくない。状況に関係なく機能するコードが必要です。