開発の備忘録

タグのカスタマイズなどで作成したjavascript等の備忘録

jQueryでオブジェクト内を取得する

htmlソースコードに下記のようにリンクがあり、これらのリンクに共通のパラメータを付与したい場合、jQueryで取得したのちにループで回してパラメータを付与していく必要がある。

<a href="https://sample.co.jp/AAAAA" target="_blank">
<a href="https://sample.co.jp/BBBBB" target="_blank">
<a href="https://sample.co.jp/CCCCC" target="_blank">
<a href="https://sample.co.jp/DDDDD" target="_blank">

やりたい内容をJavaScriptで記述することこんな感じ

var para = '?test=1111';
var hoge = document.getElementsByTagName("a");
for(var i=0; i<hoge.length; i++){
  var tmp = hoge[i].getAttribute('href');
  tmp = tmp + para;
  hoge[i].setAttribute('href',tmp);
}

同様の処理をjQueryで記述するとこんな感じ

var para = '?test=1111';
var hoge = $("a[href *='sample']");
for(var i=0;i<hoge.length; i++){
  var tmp = hoge.eq(i).attr('href');
  tmp = tmp + para;
  hoge.eq(i).attr('href')
}

試してないけど動くはず。。 ポイントはdocument.getElementsBy...で取得した結果は配列ではなくオブジェクトであるということ。 JavaScriptでは配列のように[]を用いて指定できるが、jQueryを用いる場合はeq()で指定する。