わかりました、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] にしたくない。状況に関係なく機能するコードが必要です。