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

Javascript 单击某个元素后调用jQuery函数,javascript,jquery,dom,javascript-events,Javascript,Jquery,Dom,Javascript Events,下面是HTML代码 <p onclick='javascript:func(this);'>Bla bla bla</p> 它不起作用,我不明白为什么。错误消息是“Object”没有方法“text”。将其包装在jQuery包装器中.text()是一个jQuery方法,而元素e是一个普通的Javascript DOM元素,因此需要jQuery包装器 var t = $(e).text(); 旁注:与内联处理程序相比,不引人注目的事件处理程序分配更可取。例如: $(doc

下面是HTML代码

<p onclick='javascript:func(this);'>Bla bla bla</p>

它不起作用,我不明白为什么。错误消息是“Object”没有方法“text”。

将其包装在jQuery包装器中
.text()
是一个jQuery方法,而元素
e
是一个普通的Javascript DOM元素,因此需要jQuery包装器

var t = $(e).text();
旁注:与内联处理程序相比,不引人注目的事件处理程序分配更可取。例如:

$(document).ready(function(){
    $('p').click(function(){
        var t = $(this).text();
        console.log(t);
    });
});
上面使用jQuery来分配点击处理程序(而不是内联Javascript),因此,对于普通Javascript对象可以在
this
中访问元素,对于jQuery对象可以在
$(this)
中访问元素。

这是纯javascript,可以满足您的要求

function func(e) {
  var t = e.innerHTML;
  console.log(t);
}

尝试使用
innerHTML

function func(e) {
    var t= e.innerHTML;
    console.log(t);
}

如果不使用jquery,请使用
innerText

function func(e) {
  var t = e.innerText;
  console.log(t);
}
正确的方法是:

HTML:

<p onclick='func(this);'>Bla bla bla</p>
function func(e) {
    var t = e.innerHTML;
    console.log(t);
}

Jquery被设计成不引人注目的。如果您在所有地方添加onclick属性,则表明您的操作是错误的

相反,您应该添加事件侦听器

<p>Blah Blah Blah</p>

我没有看到任何jQuery。很抱歉,如果您只是想自己编辑它,但它在LQP审阅列表中;-)
function func(e) {
    var t = e.innerHTML;
    console.log(t);
}
<p>Blah Blah Blah</p>
$(document).ready(function(){
    $('p').on('click', function(){
        console.log($(this).text());
    });
});