順序付けられていないリストからイベントのターゲット要素のテキストを取得しようとしています
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
このようなコードで
$('ul').click(function() {
theEl=(event.target.text);
});
ログをコンソールするとき
event.target
戻ります
<li>Item 1</li>
そして
event.target.text
未定義を返します
「アイテム1」が欲しいだけです。私は以前にこれをしたことを知っています-それは遅いに違いありません...どんな援助にも感謝します:)
JQueryのテキスト関数を使用します。
$(event.target).text()
生のJSとjQueryを混同しています。
JQueryでは、$(event.target).text()
を使用します
ただし、JavaScriptでははるかに効率的です:event.target.firstChild.nodeValue
編集:これが証拠として JSPerf です。
_event.target.text
_が定義されていない理由は、HTMLElementにそのメソッドまたはプロパティが定義されていないためです。ただし、jQueryにはtext()
があります。これはあなたが探していたものです。 jQueryのメソッドまたはプロパティにアクセスするには、現在のHTMLElementをjqueryオブジェクトでラップする必要があります。これは、それをjQueryに渡すことによって行われます。jQueryはそれを使用して関数オブジェクトを作成し、jQueryプロトタイプはAPIを公開します。
_jQuery(element);//in general
$(event.target).text();//for your situation
_
_event.target.textContent
_
Javascriptアクセスでもあります。 'Chrome'(またはFirefox)javascriptコンソールを_Ctrl+Shift+J
_で実行することをお勧めします。コードをconsole.log(event)
と記述し、コンソールで注意してください。オブジェクトのすべての属性を見ることができます。
これを試してください-> event.target.innerText