Вы можете передать текущую ссылку в качестве аргумента функции:
<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;
});
});
UPDATE 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
Yikes, избили меня. –
@ Томалак, действительно, я этого не заметил.Просто не мог поверить, что кто-то, использующий jQuery, фактически разместил бы встроенные обработчики onclick в своей разметке. –