单击某个元素后调用jQuery函数

enj*_*aku 4 javascript jquery dom javascript-events

这是HTML代码

<p onclick='javascript:func(this);'>Bla bla bla</p>
Run Code Online (Sandbox Code Playgroud)

这是脚本(它写在文档的头部).

function func(e) {
  var t = e.text();
  console.log(t);
}
Run Code Online (Sandbox Code Playgroud)

它不起作用,我不理解为什么.错误消息是"对象#没有方法'文本'".

MrC*_*ode 5

将它包装在jQuery包装器中..text()是一个jQuery方法,你的元素e是一个简单的Javascript DOM元素,所以你需要jQuery包装器.

var t = $(e).text();
Run Code Online (Sandbox Code Playgroud)

附注:不显眼的事件处理程序分配比内联处理程序更受欢迎.例如:

$(document).ready(function(){
    $('p').click(function(){
        var t = $(this).text();
        console.log(t);
    });
});
Run Code Online (Sandbox Code Playgroud)

上面使用jQuery来分配单击处理程序(而不是内联Javascript),因此,可以访问该元素以获取this普通Javascript对象或$(this)jQuery对象.