2010-11-25 14 views
3

私は、次のJavaScriptの変数があります。jQueryの取得UL

<script> 
    var theme="Videocameras"; 
</script> 

そして、次のHTMLコード:

<div>  
    <span>Tecnology</span> 
    <ul id="menu"> 
     <li> 
      <a href="#">Multimedia</a> 
      <ul> 
       <li> 
        <a href="#">Videocameras</a> 
       </li> 

       <li> 
        <a href="#">Cameras</a> 
       </li> 

       <li> 
        <a href="#">MP3 and MP4</a> 
       </li>     
      </ul> 
     </li> 
      <li> 
      <a href="#">Telephony</a> 
      <ul>    
       <li> 
        <a href="#">Mobile Phones</a> 
       </li> 

      </ul> 
     </li> 
    </ul> 
</div> 

私は希望を変数の値と一致するテキストを持つhrefの内部にある一意のulを取得する方法を知ることができます。

私に手を差し上げてもらえますか? よろしくおねがいします。

+0

'href'はちょうど'# 'です、テキストがどこにマッチするのですか? –

答えて

2

あなたはあなたのために働く必要がありますworking demo

+0

':contains(Cameras)'は 'Video Cameras'と' Cameras'の両方にマッチするので、これには注意が必要です。 OPは間違って自分のコード(* Videocameras *)に1つの単語として2つを持っているので、その状態では問題はありません。しかし、別の開発者が来て、自分の英語を浄化すると、それは壊れる可能性があります:-) –

1

@rahul's solutionを参照してください、しかし:containsはどこでもその内のテキストを見つけるためのチェックです。この

$("a:contains(" + theme + ")").closest("ul"); 

を試してみて:contains.closest()

を使用することができます要素のテキストあなたは、より堅牢なソリューションをしたい場合は、このようなものは動作します:

$("#menu li > a").filter(function() { 
    return $(this).text() == theme; 
}).closest("ul"); 

の作業のデモ:あなたの例ではhttp://jsfiddle.net/AndyE/zU7bU/1/(@のラーフルのフィドルに基づく)

+1

+1 - '#menu'から降りてきますが、 –