【そのままコピペOK!!】jqueryでidを取得する方法をまとめてみた
18/11/11 17:03:58 19/05/05 15:10:14
jQueryはJavaScriptでありながら、HTMLのタグに対して処理を行うという点ではCSSに近い性質を持っています。そして、idの指定や取得はjQueryの基本とも言えるでしょう。取得を含めて少し応用的なidに対する処理についてもコードを紹介しますが、基本的に難しいことはないかと思います。
なので、ぜひ安心して読み進めてください。各ソースコードに対して文章での解説も行いますが、おそらくだいたいのソースコードはjQueryやJavaScriptをあまり見たことがなくても直感的にわかるレベルかと思います。
ただし直感的にわかるだけだとなんとなくモヤモヤした感じが残ったり、厳密には勘違いしているパターンもあります。なので、直感的な理解にプラスして理論的な解説を付け加えていくようなイメージです。
目次
jQueryでid取得する方法
jQueryでidを取得する方法ですが、さっそくソースコードで確認していきましょう。
<body>
<div id="idSample">
<p id="text">テキスト</p>
</div>
<script>
var idVariable = $('div').attr('id');
console.log(idVariable );
</script>
</body>
上記のサンプルコードでは、変数idに取得したidを格納するために、attr()メソッドを使用しています。divタグに対してattr()メソッドを使用し、idを取得しています。最後に取得したidを出力しているため、コンソールには以下のように出力されます。
idSample
pタグではなくdivタグに対してattrメソッドを使用したため、divタグの要素であるidSampleが取得されます。
idの追加、変更を行う方法
次に、idの追加、変更を行う方法を紹介します。
idの追加
<body>
<p>テキスト</p>
<script>
var idVariable = $('p').attr('id', 'text');
console.log(idVariable );
</script>
</body>
上記のソースコードを実行すると、コンソールには以下のように出力されます。
[p#text, ……]
idが指定されていないpタグに対してid名textの設定を行いました。attr()メソッドの第2引数は追加したid名や新しく変更したいid名を記述する仕様になっており、上記の場合idの追加を行いました。
idの変更
<body>
<p id="text">テキスト</p>
<script>
var idVariable = $('p').attr('id', 'sample');
console.log(idVariable );
</script>
</body>
上記のソースコードを実行すると、コンソールには以下のように出力されます。
[p#sample, ……]
もともとpタグのidはtextでしたが、それがsampleに変わりました。ちなみにコンソール出力した際にdivタグの場合はそのまま要素が出力されて、pタグの場合p#が付いていますが、そういう仕様です。
idを削除する方法
idの削除も取得や追加や変更同様難しいものではないのですが、メソッドが変わります。今まではattr()メソッドを使用していましたが、削除の場合はremoveAttr()メソッドを使用します。サンプルコードは以下です。
<body>
<p id="text">テキスト</p>
<script>
var idVariable = $('p').removeAttr('id');
console.log(idVariable );
</script>
</body>
上記のソースコードを実行すると、以下のようにコンソール出力されます。
[p, ……]
もともとpタグにはtextというidが付与されていましたが、removeAttrによってidが削除されました。
セレクタ指定でidを取得する方法
上で説明してきた方法では、タグに対してattrやremoveAttrメソッドを使用することでidに対して処理を行っていました。しかし、メソッドを使用せずに直接セレクタ指定をすることも可能です。具体的には以下のサンプルコードのようになります。
<body>
<p id="text">テキスト</p>
<script>
$('#text');
var idVariable = '#text';
$(id);
</script>
</body>
上記のサンプルコードでは二か所でセレクタ指定でidを取得しています。まず一つ目が「$(‘#text’)」、二つ目が「var id = ‘#text」です。直接記述する方法でも変数に入れる方法でもどちらでも処理としては同じです。取得するだけならどちらでも良いのですが、その後何らかの処理で使用するなら変数に入れた方が汎用性は高いと言えるでしょう。
また、以下のように特定の属性が付いているidのみを指定して取得することも可能です。
<body>
<div id="idSample ">
<p id="text1" hidden>テキスト1</p>
<p id="text2">テキスト2</p>
<p id="text3">テキスト3</p>
</div>
<script>
var idVariable = $('p:hidden');
console.log(idVariable );
</script>
</body>
上記のソースコードを実行すると、以下のようにコンソール出力されます。
[p#text1, ……]
pタグのid名ではなく、hiddenという属性に対して要素取得を行いました。pタグ自体は三つありますが、hiddenの属性を持つのはidがtext1のもののみです。そのため、text1というidが取得されました。
idを複数取得する方法
上で解説してきた方法では特定のidのみを取得してきましたが、すべてのid、もしくは条件に合致するidのみを取得する、という方法もあります。
<body>
<div id="idSample ">
<p id="text1">テキスト1</p>
<p id="text2">テキスト2</p>
<p>テキスト3</p>
<p id="text4">テキスト4</p>
</div>
<script>
var idVariable = $('p[id]');
console.log(idVariable );
</script>
</body>
上記のソースコードを実行すると、以下のようにコンソール出力されます。
[p#text1, p#text2, p#text4, ……]
ソースコードのなかの「$(‘p[id]’)」ですべてのid属性をしていしているため、pタグのなかでidが付与されているすべてのidが取得されました。具体的には、text1、text2、text3の三つです。
次に、条件に合致するidのみを取得することも可能です。
<body>
<div id="idSample ">
<p id="text-one">テキスト1</p>
<p id="text-two">テキスト2</p>
<p id="three">テキスト3</p>
</div>
<script>
var idVariable 1 = $('p[id^=text]');
var idVariable 2 = $('p[id$=e]');
console.log(idVariable 1 );
console.log(idVariable 2 );
</script>
</body>
上記のソースコードを実行すると、以下のようにコンソール出力されます。
[p#text-one, p#text-two, ……]
[p#text-one, p#three, ……]
まず、「$(‘p[id^=text]’)」はidの先頭にtextが入っているものを表しています。次に、「$(‘p[id$=e]’)」はidの最後にeが付いているものを表しています。その結果、それぞれの条件に合致するidが取得できました。
以上のような方法によって、idを取得することができます。非常に簡単なので書いても良いですし、上のソースコードのフォームをコピペしてもOKです。
案件量が豊富なアルマサーチ
最後に、アルマサーチのご紹介!
アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。
アルマサーチが選ばれる理由
- 豊富な案件量。週3?4日の案件や在宅リモート案件も。
- 優秀なコンサルタント陣。
- 案件に参画後もしっかりサポート。
豊富な案件量
フリーランス向けに特化し、業界屈指の案件量を誇ります!週3?4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。
優秀なコンサルタント陣
技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。
案件に参画後もしっかりサポート
常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。
人気記事