1

当我单击我的 li 菜单时,我需要获取此链接文本。问题是菜单是一棵树,我得到一个带有父文本的当前文本。

例如 - 当我点击“test 3”时,我也会得到“test 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>
4

3 回答 3

1

那么为什么不听a元素呢?

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

http://jsfiddle.net/VQMqm/

于 2013-05-14T19:22:47.023 回答
1
$("#menu li").click(function(e) {
    e.stopPropagation();
    var target = e.target,
        text = target.textContent || target.innerText;
    console.log(text);        
});

JS 小提琴演示

于 2013-05-14T19:23:45.417 回答
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();
  });
});
于 2013-05-14T19:27:30.863 回答