jQuery中的列表选择

jQuery中的列表选择,jquery,dom,Jquery,Dom,我正在使用jQuery,我的列表有以下内容 <div id="wrapper"> <ul id="testnav"> <li class="test1"><a href="/link">Heading</a> <ul> <li><a href="/link">Sub Heading</a></li>

我正在使用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 a").bind("click", function(){
     alert( $(this).text());
 });
李的文本实际上是一个链接文本。所以你需要得到它。那只对孩子们有用

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

李的文本实际上是一个链接文本。所以你需要得到它。那只对孩子们有用

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


您非常接近-您需要将事件绑定到锚定标记,并确保将事件绑定包装在
$(文档)中。就绪
功能如下:

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

您非常接近-您需要将事件绑定到锚定标记,并确保将事件绑定包装在
$(文档)中。就绪
功能如下:

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

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

$('#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();
});
如果您试图直接连接到
li
s的原因是希望整个内容都是“可点击的”,请使用CSS调整链接大小:

#testnav a { display:block }

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

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

$('#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();
});
如果您试图直接连接到
li
s的原因是希望整个内容都是“可点击的”,请使用CSS调整链接大小:

#testnav a { display:block }

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

使用事件委派而不是添加大量单个句柄使用事件委派而不是添加大量单个句柄