2010-11-25 10 views
0

私は次のようなHTMLがあります。私はjavascriptの変数ウィッヒ値がマルチメディア「または 『電話』または他のテーマもできていその一方でためjqueryの選択すべてのUL要素マイナス1

<div> 
     <span>Tecnology</span> 
     <ul id="menu"> 
      <li> 
       <a href="#">Multimedia</a> 
       <ul> 
        <li>Videocameras</li> 
        <li>Cameras</li> 
        <li>MP3 and MP4</li> 
       </ul> 
      </li> 
       <li> 
       <a href="#">Telephony</a> 
       <ul> 
        <li>Mobile Phones</li> 
       </ul> 
      </li> 
     </ul> 
    </div> 

を...

私は(上の現在のテーマイムを示し、すべての残りの部分を折りたたむには)<a href>ウィッヒテキストがこれらのテーマと一致するには、以下のULのthatsを選択するためにjqueryの文が必要になります。

私はこれを持ってモーメントjqueryの文章はうまくいきませんでした。

$("#menu ul").first().first().filter("not:contains('"+themename+"')").css("display", "none"); 

答えて

0

ないのidメニューを持っていますが、あなたのようなものを必要とする非マッチングリストを選択して非表示にし、その後、それは周囲のdiv要素であると仮定するとどのような要素を確認してくださいを:

$('#menu a').not(':contains(" + themename + ")').next().hide(); 

、関連リー表示する:

$('#menu a:contains(" + themename + ")').next().show(); 
をあなたはLiとULの異なるレベルにクラスを与えた場合、それが容易になるだろう正直に言うと

$('#menu ul ul').hide(); 
$('#menu a:contains(" + themename + ")').next().show(); 

実際にあなたは、あなたが望むものを示すすべての李さんを非表示にすることで、それを簡素化することができます。たとえば、同じコンテンツをネストしたリンクがあった場合など、将来起こりうる問題を止めるのにも役立ちます。

+0

申し訳ありませんlaurencek、#menuは最初のulです。 – Jose3d

+0

私の答えで変更する唯一の事は$( 'menu ul ul')〜$( 'menu ul')という行だけです –

0

このような何か:

$("#menu ul").not($("#menu a:contains(" + themename + ")").next()); 
関連する問題