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 に答える