【问题标题】:List selection in jQueryjQuery中的列表选择
【发布时间】:2009-02-03 12:18:11
【问题描述】:

我正在使用 jQuery,我的列表有以下内容。

<div id="wrapper">
    <ul id="testnav">
        <li class="test1"><a href="/link">Heading</a>
            <ul>
                <li><a href="/link">Sub Heading</a></li>
                <li><a href="/link">Sub Heading</a></li>
                <li><a href="/link">Sub Heading</a></li>
            </ul>
        </li>
        <li class="test2"><a href="/link">Heading</a>
            <ul>
                <li><a href="/link">Sub Heading</a></li>
                <li><a href="/link">Sub Heading</a></li>
                <li><a href="/link">Sub Heading</a></li>
            </ul>
        </li>
        <li class="test3"><a href="/link">Heading</a>
            <ul>
                <li><a href="/link">Sub Heading</a></li>
                <li><a href="/link">Sub Heading</a></li>
                <li><a href="/link">Sub Heading</a></li>
            </ul>
        </li>
    </ul>
</div>

当我单击标题或子标题时,我需要相应的文本。我使用了以下方法,但它不起作用。

$("li").bind("click", function(){
     alert( $(this).text());
});

我应该做些什么改变?

【问题讨论】:

    标签: jquery dom


    【解决方案1】:
     $("li a").bind("click", function(){
         alert( $(this).text());
     });
    

    li 的文字实际上是一个A 链接文字。所以你需要得到它。这只适用于孩子们。

    我不确定 LI 是否有点击事件,但如果您使用 html() 函数而不是 text(),它会起作用:

     $("li").bind("click", function(){
         alert( $(this).html() );
     });
    

    【讨论】:

      【解决方案2】:

      您非常接近 - 您需要将事件绑定到锚标记并确保将事件绑定包装在 $(document).ready 函数中,如下所示:

      $(document).ready(function() {
          $("li a").bind("click", function() { alert( $(this).text()); })
      });
      

      【讨论】:

        【解决方案3】:

        虽然其他答案都不正确,但我会这样做:

        $('#testnav a').click(function(ev){
            alert($(this).text())
        
            //if you need to stop the browser going to the link
            // (eg you're doing something else AJAXey):
            ev.preventDefault();
            ev.stopPropagation();
        });
        

        如果您尝试直接附加到 lis 的原因是您希望整个内容“可点击”,请使用 CSS 调整链接大小:

        #testnav a { display:block }
        

        根据您的操作方式,您可能需要尝试使链接、li 和/或 ul 浮动,并设置宽度。

        【讨论】:

        • 使用事件委托而不是添加大量单独的处理程序
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        • 2010-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多