4

ここにHTMLコードがあります

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

これがスクリプトです(ドキュメントの頭に書かれています)。

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

うまくいかず、その理由がわかりません。エラー メッセージは、「オブジェクト # にはメソッド 'text' がありません」です。

4

6 に答える 6

5

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 の代わりに) クリック ハンドラーを割り当てているthisため、プレーンな Javascript オブジェクトまたは$(this)jQuery オブジェクトで要素にアクセスできます。

于 2013-07-05T06:45:45.810 に答える
0

フィドル

これはプレーンな JavaScript であり、要求したことを実行します。

function func(e) {
  var t = e.innerHTML;
  console.log(t);
}
于 2013-07-05T06:47:32.800 に答える
0

使用してみてくださいinnerHTML

function func(e) {
    var t= e.innerHTML;
    console.log(t);
}
于 2013-07-05T06:47:35.207 に答える
0

jquery を使用innerTextしない場合に使用します。

function func(e) {
  var t = e.innerText;
  console.log(t);
}
于 2013-07-05T06:48:04.227 に答える
0

正しい方法は次のとおりです。

HTML:

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

それ以外の

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

Javascript:

function func(e) {
    var t = e.innerHTML;
    console.log(t);
}
于 2013-07-05T06:48:50.993 に答える
0

Jquery は目立たないように設計されています。どこにでもonclick属性を追加すると、間違っています。

代わりに、イベントリスナーを追加する必要があります

<p>Blah Blah Blah</p>

Jquery/スクリプト

$(document).ready(function(){
    $('p').on('click', function(){
        console.log($(this).text());
    });
});
于 2013-07-05T06:51:01.900 に答える