为什么这不起作用的任何想法?
<a href="javascript:alert($(this).text())">Alert This Text Here</a>
我期待它提醒“警告此文本在这里”,但我得到一个jQuery错误(G未定义)
我错过了什么?
答案 0 :(得分:15)
我认为“this”与您点击的链接无关。它从来没有给过联想。 this
不会从标记/语法中获取其关联。
以下作品:
<a href="#" onClick="alert($(this).text());">Some Text</a>
理想情况下,您希望将脚本与标记分开。你应该这样做:
$("a.someClass").click(function(event){
event.preventDefault();
alert($(this).text());
});
这个例子要求你的锚有一个class =“someClass”来运行。
答案 1 :(得分:2)
<a id="alert">Alert This Text Here</a>
...
$(function() {
$("#alert").click(function() {
alert($(this).text());
});
});
正如上面提到的海报所说,这需要在选择器中有上下文。
答案 2 :(得分:1)
如果您使用“onclick”事件处理程序,this
将可用于获取text()
。
答案 3 :(得分:0)
在jQuery中,$(this)通常在循环或其他选择器的上下文中引用jQuery对象。所以基本上你想在jquery中选择一个对象然后使用$(this)。
示例:
$("a").click(function(){alert($(this).text());});
这将起作用,因为$(this)位于所选链接的上下文中。
我认为你对标准的javascript“this”引用感到困惑,它将为你提供当前的DOM对象。
这篇文章给出了一个很好的解释: http://remysharp.com/2007/04/12/jquerys-this-demystified/