0

私は次のものを持っています:

a = li.parent().parent().children('a, span');

リンクから始まり、チェーンを上るループを設定しています。私がこれを正しく理解している場合、上記のコードは、それに続くスパンがある場合にリンクを選択します。したがって、正しく選択します。

   <a ..>..<span>History</span> .. </a> and
   <a ..>..<span>Overview</span> .. </a>

しかし、私はそれを選択したくありません:

   <a ..> ..<span class="toggle"></span>

次のHTMLから:

<ul id="menu" class="arbo with-title">
   <li>
      <a class="title-a">
         <span>Overview</span></a>
      <ul>
         <li>
            <span class="toggle"></span>
            <a class="folder"><span>Background</span></a>
            <ul>
               <li><a data-href="/History" class="document-web"><span>History</span></a></li>
               <li><a data-href="/eatures" class="document-web"><span>Features</span></a></li>
               <li><a data-href="/Design-Goals" class="document-web"><span>Design Goals</span></a></li>
            </ul>
         </li>
         <li>

この質問の上部にある選択を、トグルのクラスのスパンに気付かないようにする方法はありますか?何かのようなもの:

a = li.parent().parent().children('a, span(only if the element does not have a class of togggle)');

参考までに、ループコードは次のとおりです。

function populateBreadcrumb(a: JQuery, $breadcrumb: JQuery) {
  while (a.length > 0) {
     $breadcrumb.prepend('<li><a >'+a.html()+'</a></li>');
     var li = a.parent();
     a = li.parent().parent().children('a, span');
  }
}
4

2 に答える 2

0

あなたは:notセレクターでこれを行うことができます:

a = li.parent().parent().children("a, span:not(.toggle)");

これでうまくいくはずです。

すべてのスパンを取得するfind代わりに使用することもできますが、children

$("#menu").find("a, span:not(.toggle)");

jsfiddle: http: //jsfiddle.net/mGv6N/

于 2012-12-10T12:46:41.180 に答える
0
a = li.parent().parent().children('a, span:not('.toggle')"));

not指定されたクラスでセレクターを使用する

于 2012-12-10T12:48:07.777 に答える