14

順序付けられていないリストからイベントのターゲット要素のテキストを取得しようとしています

<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」が欲しいだけです。私は前にこれをしたことを知っています-それは遅いに違いありません...どんな援助にも感謝します:)

4

5 に答える 5

28

jQueryのテキスト関数を使用します。

$(event.target).text()
于 2013-02-06T02:54:49.873 に答える
9

生のJSとjQueryを混同しています。

jQueryでは、$(event.target).text()

ただし、JavaScriptでははるかに効率的です。event.target.firstChild.nodeValue

編集:これが証拠としてのJSPerfです。

于 2013-02-06T02:55:52.983 に答える
2

未定義の理由event.target.textは、HTMLElementにそのメソッドまたはプロパティが定義されていないためです。ただし、jQueryにはtext()あなたが探していたものがあります。jQueryのメソッドまたはプロパティにアクセスするには、現在のHTMLElementをjqueryオブジェクトでラップする必要があります。これは、それをjQueryに渡すことによって行われます。jQueryはそれを使用して関数オブジェクトを作成し、jQueryプロトタイプはAPIを公開します。

jQuery(element);//in general
$(event.target).text();//for your situation
于 2013-02-06T03:17:26.300 に答える
2
event.target.textContent

javascriptアクセスでもあります。'Chrome'(またはFirefox)javascriptコンソールを。で実行することをお勧めしますCtrl+Shift+J。あなたのコードを書いてください:console.log(event)そしてコンソールで気をつけてください。オブジェクトのすべての属性を見ることができます。

于 2014-12-17T18:44:52.440 に答える
1

これを試してください->event.target.innerText

于 2018-10-03T09:48:09.110 に答える