您可以通过当前的链接作为参数传递给函数:
<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>
,然后使用innerHTML
属性读取里面的文字:
var myFunc = function (link) {
alert(link.innerHTML);
};
UPDATE:
我没有注意到,实际上你的问题是用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>
,并在一个单独的js文件:
$(function() {
$('.Buttons a').click(function() {
alert($(this).text());
return false;
});
});
更新2:
有人问如何如果这些锚点是动态生成的,则分配这些点击处理程序。因此,让我们假设你开始了下面的标记:
<ul class="Buttons"></ul>
,然后当一些事件发生(点击或某事),你添加动态锚:
$('<li/>', {
html: $('<a/>', {
href: '#',
text: 'some text ....',
click: myFunc
})
}).appendTo('.Buttons');
,你在什么地方定义myFunc
:
var myFunc = function() {
alert($(this).text());
return false;
}
幸运的是,问题标记为jQuery。 :) – Tomalak 2012-01-27 17:54:46
哎呀,打我吧。 – 2012-01-27 17:58:42
@Tomalak,的确,我没有注意到。简直无法相信使用jQuery的人实际上会在他的标记中放入内联onclick处理程序。 – 2012-01-27 18:02:29