在点击链接(<a>)元素中捕获文本

dam*_*mon 2 html javascript jquery hyperlink

我需要捕获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>
Run Code Online (Sandbox Code Playgroud)

在javascript中,我不确定如何使用jquery选择当前单击的元素.我知道$('.mylinkclass')会返回上面4个链接的数组.如何编写选择器代码?

$(document).ready(function(){
   $('.mylinkclass').click(function(){getLinkText();});
}

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

小智 8

改变这个......

 $('.mylinkclass').click(function(){getLinkText();});
Run Code Online (Sandbox Code Playgroud)

对...

 $('.mylinkclass').click(getLinkText);
Run Code Online (Sandbox Code Playgroud)

这样您就可以直接将函数指定为处理程序.这样,它的this值将是对单击元素的引用.


如果在调用之前还有其他工作需要完成getLinkText,你可以通过this作为参数传递来传递元素...

 $('.mylinkclass').click(function(){
     // do other work
     getLinkText(this);
 });

function getLinkText(el){

    alert($(el).text());
    return false;
}
Run Code Online (Sandbox Code Playgroud)

或者通过使用.call.apply使this函数具有相同的值...

 $('.mylinkclass').click(function(){
    // do other work
    getLinkText.apply(this, arguments);
 });

function getLinkText(){

    alert($(this).text());
    return false;
}
Run Code Online (Sandbox Code Playgroud)