2
4

5 回答 5

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;
}
于 2012-05-25T14:36:17.397 回答
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;
}
于 2012-05-25T14:38:57.800 回答
0

你也可以这样写:

$('.mylinkclass').click(function(e)
  {
    e.preventDefault(); // we don't want to cause the page to refresh or jump to top
    alert($(this).text());
  });
于 2012-05-25T14:38:06.553 回答
0

你的问题是你如何设置/调用你的 getLinkText() 函数。

尝试以下操作:

$('.mylinkclass').click(getLinkText);

您需要将getLinkText自己作为点击处理程序传递,而不是调用的匿名函数getLinkText

于 2012-05-25T14:38:45.350 回答
0

您可以使用text()函数$(".mylinkclass").text($(".link").text()获取链接中的文本

于 2012-05-25T14:45:35.417 回答