18
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

data-target 使い方備忘録。

Last updated at Posted at 2018-04-02

いっぱいある要素のなかで個別に処理をおこないたいとき、クラスだと着け方迷うし
js〇〇〇とかあまりつけたくないのでdata-targetを使って対応。
jquery使ってます。

取得したい要素に以下を追加

data-target="type1"

data-target.html
<input id="id" type="radio" name="name" value="1" checked="" data-target="type1">
data-target.js
let target = $(this).attr('data-target');
if (target === 'type1') { $('.block1').show(); $('.block2').hide(); }
else { return false; }

else if でtargetごとに処理分けれるので、とにかく要素いっぱいあって何やってるかわかりづらい!
ってときに使うと便利。かも。

##一つずつ処理を回したい

処理を回したい要素にclassとdata-targetをつける

data-target.html
<a href="" class="js-each" data-target="キャンペーン詳細">キャンペーン詳細はこちら</a>
<a href="" class="js-each" data-target="キャンペーン場所">キャンペーン場所はこちら</a>
<a href="" class="js-each" data-target="キャンペーンお申込み">キャンペーンお申込みはこちら</a>
data-target.js
  $('.js-each').each(function() {
    let $this = $(this);
    let target = $this.attr('data-target');

    if(target === 'キャンペーン詳細') {
      $this.attr('href', 'https://campaign.com/キャンペーン詳細');
    }
    else if (target === 'キャンペーン場所') {
      $this.attr('href', 'https://campaign.com/キャンペーン場所');
    }
    else if (target === 'キャンペーンお申込み') {
      $this.attr('href', 'https://campaign.com/キャンペーンお申込み');
    }
    else {
      return false;
    }
  });

なが~いリンクをあちこちにはったりする場合は管理が楽。

18
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?