javascript - JS でこれについて質問します。
滿天的星座
滿天的星座 2017-07-05 10:49:51
0
7
789

なぜこの場所では onclick イベントがトリガーされないのですか? jqueryで現在クリックされているliのDOMオブジェクトを取得できれば、こんな感じでJSで利用できないでしょうか?

リーリー リーリー ###改訂:### リーリー リーリー

皆さんありがとうございます。以前は jquery を使っていましたが、今改めて js を見ると多くの問題を発見しました。今後はこのような愚かな間違いはしません、とても感銘を受けました^_^。

滿天的星座
滿天的星座

全員に返信(7)
滿天的星座

クリックしてこのイベントをトリガーできますか? セグメントフォルトを使用できます。


しかし、コードには少し問題があります。getElementsByTagName は配列のようなオブジェクトを返します

それをトラバースして、onclick 値を各要素に割り当てる必要があります

いいねを押す +0
大家讲道理

thisの理由ではありません。

onclick 是 DOM 的事件。但是此时的 lis これは dom ではありませんが、DOM のコレクションです。

jQuery は、クリック関数が呼び出されるときに jQuery オブジェクトを返すため、これを処理できます。jQuery は暗黙的にループを使用します。 $("ul li")

関数はそれを実数の配列に変換しますが。

リーリー

いいねを押す +0
学习ing

lis = document.getElementsByTagName("li") は配列を取得します。
イベントをどのようにバインドする必要がありますか?

いいねを押す +0
阿神

クリック イベントを書き込むのに .onclick() を使用しないでください。addEventListener('click', function(){console.log(this)}); を使用してクリック イベントを追加し、それがトリガーされるかどうかを確認してください。これは lis を取得したためです。この理由で onclick 配列が機能しないのでしょうか?

いいねを押す +0
为情所困

2 番目のコードは間違って書かれています。lis は dom オブジェクトではなく、配列なので、onclick の設定は役に立ちません
これに変更してください

リーリー
いいねを押す +0
为情所困

getElementsByClassName这个方法吧,把getElementsByTagNameを使用して直接カプセル化すると、dom操作として使用できます

リーリー
いいねを押す +0
淡淡烟草味


上の図に示すように、あなたの lis はオブジェクトの配列として出力されます。あなたの考えによれば、onclick を各 li オブジェクトにバインドするために lis をトラバースする必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!