2011-12-24 47 views
0

我的目标是通过单击它来检索锚标记的文本。我希望这是一个不内联的函数。示例

function getText(){ 

alert($('this.a').text()); 

} 

我知道上述不起作用的B/C我已经尝试过了。

我不希望这是由id,因为我希望它可以在单击时处理所有'a'元素。当我使用:

function getText(){ 

alert($('a').text()); 

} 

它返回我页面上所有'a'标签内的所有文本。我想要完成的仅仅是返回我单击的锚标记的文本。我认为这与使用$(this)和'a'标签有关,但我似乎无法弄清楚。

再次我想能够为我的页面上的所有标签调用此函数,而不必为每个id编写函数,这就是为什么我想使用“this”。谢谢。

回答

1

你只是想$(this).text()

function getText() { 
    alert($(this).text()); 
} 

,当然,你要处理像这样的事件:

$('a').click(getText); 
0

这只是同一个单独的功能,因为它会与在线一:

$("selector_for_the_anchors_in_question").click(clickHandler); 

function clickHandler() { 
    alert($(this).text()); 
} 

jQuery确保当处理程序被调用时,this被设置为处理程序被挂钩的元素,当然还有为您使用$()(或jQuery()处于noConflict模式)的元素获取jQuery包装器。

0

这jQuery是不够的:

$('a').click(function() { 
    alert($(this).text()); 
}); 

JSFiddle

0

你无论如何都必须绑定功能click事件。

function getText(){ 
    alert($(this).text()); // `this` is the element clicked 
    return false; // prevent navigating 
} 

$("a").click(getText); // bind function to all <a> elements 

这不是这样内联,但老实说,我没有看到这样做的理由。