点击链接的文字

rab*_*bie 3 javascript jquery

<ul class="Buttons">
    <li><a href="#" onclick="myFunc(); return false;">Accept</a></li>
    <li><a href="#" onclick="myFunc(); return false;">Reject</a></li>
    <li><a href="#" onclick="myFunc(); return false;">On Hold</a></li>
    <li><a href="#" onclick="myFunc(); return false;">Completed</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在我的script.js中:

var myFunc = function () {
    // I want to get the Text of the link e.g. if the first list item link is
    // clicked, store "Accept" in a variable.
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Dar*_*rov 9

您可以将当前链接作为参数传递给函数:

<ul class="Buttons">
    <li><a href="#" onclick="myFunc(this); return false;">Accept</a></li>
    <li><a href="#" onclick="myFunc(this); return false;">Reject</a></li>
    <li><a href="#" onclick="myFunc(this); return false;">On Hold</a></li>
    <li><a href="#" onclick="myFunc(this); return false;">Completed</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

然后使用该innerHTML属性获取里面的文本:

var myFunc = function (link) {
    alert(link.innerHTML);
};
Run Code Online (Sandbox Code Playgroud)

更新:

我没注意到你的问题实际上是用jQuery标记的.在这种情况下,我建议你不引人注意地订阅点击处理程序:

<ul class="Buttons">
    <li><a href="#">Accept</a></li>
    <li><a href="#">Reject</a></li>
    <li><a href="#">On Hold</a></li>
    <li><a href="#">Completed</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

并在一个单独的js文件中:

$(function() {
    $('.Buttons a').click(function() {
        alert($(this).text());
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

更新2:

有人询问如果动态生成这些锚点,如何分配这些点击处理程序.因此,我们假设您从以下标记开始:

<ul class="Buttons"></ul>
Run Code Online (Sandbox Code Playgroud)

然后当某些事件发生时(点击或其他)你动态添加一个锚:

$('<li/>', {
    html: $('<a/>', {
        href: '#',
        text: 'some text ....',
        click: myFunc
    })
}).appendTo('.Buttons');
Run Code Online (Sandbox Code Playgroud)

你在myFunc某处定义的地方:

var myFunc = function() {
    alert($(this).text());
    return false;
}
Run Code Online (Sandbox Code Playgroud)

  • @rabid_zombie您可以委派事件:`$(document).delegate('.Buttons li a','click',function(){alert($(this).text()); return false;});` .您还可以将`document`更改为始终存在于DOM中的任何其他根元素(或者至少在绑定发生时和之后存在). (2认同)