質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

4回答

547閲覧

jquery $("#id")と$("div#id)の取得結果の違い

utubonu

総合スコア1

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/07/05 23:02

jqueryの要素取得で、IDを取得する際以下のような記述の方法で取得するという記述をみました。
①$("#id名")
②$("div#id名")

①は、指定されたidで要素取得を行い、②はdiv要素の中から指定されたidで検索し取得する、取得結果は同じ、という認識でした。

しかし、記述の方法が2パターンあるくらいなので、厳密には取得結果の内容は異なるものなのでしょうか?
また、上記の記述方法の使い分けはあるのでしょうか?

ご回答いただけると幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/07/05 23:07

id は全ての要素のなかで一意にはしてないのですか?
utubonu

2020/07/06 00:39

要素は一意なのですが、同一ページ内処理でIDの取得記述がバラバラでしたので、実は取得結果の違いがあるのでは?と思い質問させていただきました。
退会済みユーザー

退会済みユーザー

2020/07/06 00:48 編集

> 要素は一意なのですが、 であれば、②$("div#id名") の出番はないと思うのですが。maisumakun さんの回答にあるように ②$("div#id名") は空振りになることがあります。空振りになることに意味があってわざわざそうしているなら話は別かもしれませんが。
guest

回答4

0

取得結果は同じ、という認識でした。

当該idの振られたエレメントが<div>以外であれば、div#idは空振りになります。

投稿2020/07/05 23:14

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

utubonu

2020/07/06 01:09

ご回答ありがとうございます。 共通処理で、同じ名前のIDでもタグが異なる場合は処理しない動きの時に使用するイメージですね。(あまりないかもしれませんが) だいぶイメージがつかめてきました。ありがとうございます!
guest

0

<spna id=id名>
<div id=id名>
<ul id=id名>
<table id=id名>

①$("#id名")

①~④まで全て該当する

②$("div#id名")

②のみ該当する

$("div#id名")というのは、「タグがdivでidがid名であるもの」なので、divでないものは該当しません。

投稿2020/07/06 00:41

root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

#id*#idと同じ要素を表現します。
Selectors Level 3

そのjQueryのコードが実行されるページが複数あり、同じIDがdiv要素以外の要素に指定されるかもしれない、と考えると違いが見てくるのでは。

実際には単に「短く書けるから」という理由だったりしますが。

投稿2020/07/05 23:29

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

utubonu

2020/07/06 00:45

ご回答ありがとうございます。 確かに共通処理で、div要素以外でも同一の名前のIDがふられることを考慮する場合などで、使用する可能性がありますね。。。 そこまで考えが及びませんでした。ありがとうございます!
guest

0

ベストアンサー

HTML次第です。
ただ、同一ページに同IDはHTML規約的にはNGです。「ID」なので、一意であることが保証される必要があります。

まあ「同じページには存在しないけどページによってつけられてるタグが違ってそのなかでもdivにつけられてる要素だけにイベントを当てたい」ということもあるかもしれませんが、そもそも名前の付け方や役割を考えた方が良いですし、大抵は同じタグで同じ役割で同じIDが付きます。

投稿2020/07/05 23:15

編集2020/07/05 23:28
m.ts10806

総合スコア80857

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

utubonu

2020/07/06 02:00

ご回答ありがとうございます。 ページまたぎで使用される事まで思いつきませんでした。 使い分けのイメージが定まった気がします。 IDによって別処理になる場合は、IDのふり方をしっかり考慮したいと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問