我需要捕获text between <a> and </a> tags
并导致弹出消息。我尝试按如下方式执行此操作。但是,由于链接是动态生成的,因此我无法将ID提供给链接。所以我尝试给他们class
并使用jquery
来选择元素。
然后,我不确定如何使用jquery选择当前单击的元素。
假设生成的链接如下
<a href="#" class="mylinkclass"> first link </a> <br>
<a href="#" class="mylinkclass"> second link </a> <br>
<a href="#" class="mylinkclass"> third link </a> <br>
<a href="#" class="mylinkclass"> fourth link </a> <br>
在javascript中,我不确定如何使用jquery选择当前单击的元素。我知道$('.mylinkclass')
将返回上述4个链接的数组。如何编写选择器代码?
$(document).ready(function(){
$('.mylinkclass').click(function(){getLinkText();});
}
function getLinkText(){
alert($(this).text());
return false;
}
答案 0 :(得分:8)
改变这个......
$('.mylinkclass').click(function(){getLinkText();});
到此......
$('.mylinkclass').click(getLinkText);
这样您就可以直接将函数指定为处理程序。这样,它的this
值将是对所单击元素的引用。
如果在调用getLinkText
之前还有其他工作要做,你可以通过传递this
作为参数来传递元素......
$('.mylinkclass').click(function(){
// do other work
getLinkText(this);
});
function getLinkText(el){
alert($(el).text());
return false;
}
或者使用.call
或.apply
使函数中的this
具有相同的值...
$('.mylinkclass').click(function(){
// do other work
getLinkText.apply(this, arguments);
});
function getLinkText(){
alert($(this).text());
return false;
}
答案 1 :(得分:1)
当您从匿名函数
中调用它时,this
引用会丢失
$('.mylinkclass').click(function(){
alert($(this).text());
return false;
});
或
$('.mylinkclass').click(getLinkText);
function getLinkText(){
//..
或
$('.mylinkclass').click(function () {
getLinkText(this);
});
function getLinkText(that){
alert($(that).text());
return false;
}
答案 2 :(得分:0)
您也可以写下来:
$('.mylinkclass').click(function(e)
{
e.preventDefault(); // we don't want to cause the page to refresh or jump to top
alert($(this).text());
});
答案 3 :(得分:0)
您的问题是如何设置/调用getLinkText()函数。
尝试以下方法:
$('.mylinkclass').click(getLinkText);
您需要将getLinkText
本身作为点击处理程序传递,而不是调用getLinkText
的匿名函数
答案 4 :(得分:0)
您可以使用 text()函数 $(“。mylinkclass”)获取文本链接.text($(“。link”)。text()强>