1. ホーム
  2. javascript

[解決済み] クリックされた要素を(文書全体に対して)取得する方法は?

2022-04-22 02:29:47

質問

クリックしたHTML文書内のカレント要素(どんな要素であれ)を取得したいのですが、どうすればいいですか?私は使っています。

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

しかし、非常に不思議なことに、クリックした要素ではなく、文書全体(!)のテキストが表示されるのです。

クリックした要素だけを取得するには?

<body>
    <div class="myclass">test</div>
    <p>asdfasfasf</p>
</body>

test"テキストをクリックすると、その属性が読めるようにしたい。 $(this).attr("myclass" )をjQueryで実行します。

解決方法は?

を使用する必要があります。 event.target これは、もともとイベントを発生させた要素です。その this を参照しています。 document .

jQueryでは...

$(document).click(function(event) {
    var text = $(event.target).text();
});

jQueryを使わずに...

document.addEventListener('click', function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement,
        text = target.textContent || target.innerText;   
}, false);

また、IE9 に対応する必要がある場合は、必ず attachEvent() の代わりに addEventListener() .