2013-05-14 52 views
1

當我點擊我的li菜單時,我需要獲取此鏈接文本。問題是菜單是一棵樹,我用父文本得到當前文本。需要從jquery中選擇li菜單中的鏈接文本

例如 - 當我蹲在「測試3」我也得到和「測試2」。在這種情況下,我只需要獲得「測試3」。

我只能更改jquery腳本,html代碼生成cms。

我的代碼:

<script> 
$(document).ready(function(){ 
    $("#menu li").click(function() { 
     var text = $(this).children('a').text(); 
     alert(text);   
    }); 
}); 
</script> 
<div id="menu"> 
     <ul> 
      <li><a href="#">test 1</a></li> 
      <li> 
       <a href="#">test 2</a> 
       <ul class="sub_menu"> 
        <li><a href="#">test 3</a></li> 
        <li><a href="#">test 4</a></li> 
       </ul> 
      </li> 
      .... 
     </ul> 
    </div> 

回答

1
$("#menu li").click(function(e) { 
    e.stopPropagation(); 
    var target = e.target, 
     text = target.textContent || target.innerText; 
    console.log(text);   
}); 

JS Fiddle demo

+0

感謝,e.stopPropagation(); - 我需要的。 – lolalola

+0

然後我很高興有幫助! =) –

1

爲什麼不a元素聽我的話?

$(document).ready(function(){ 
    $("#menu a").click(function() { 
     var text = $(this).text(); 
     alert(text);   
    }); 
}); 

http://jsfiddle.net/VQMqm/

0

使用事件代表團使用一個單一的監聽器和監聽別人一樣錨提示:

$(document).ready(function() { 
    $("#menu").on("click", "a", function(e) { 
    var text = $(this).text(); 
    alert(text); 

    // Anchors are navigation, and the default action is to 
    // load the "href" attribute. Calling 'preventDefault' 
    // prevents that navigation. 
    e.preventDefault(); 
    }); 
}); 
相關問題