Log.log(work)

いろんな作業メモ

data-のカスタム属性に対してtoggleClassしたかったんだけどやり方がわからなかった

環境

jQuery v2.1.4
Google Chrome

やりたいこと

よくECサイトで商品のレビューに☆が5つあって、該当する星を塗るという項目があるが、これをjQueryで実装してみた。

クリックした場所をdata-starで取得して、
それより低い数値のliに「glyphicon-star」(★)を、そうではないliに「glyphicon-star-empty」(☆)をセットしようと考えてみたが、他のdata-startのset方法がよくわからなかった。

<ul id="stars" class="star_list">
  <li class="glyphicon glyphicon-star-empty" data-star="1"></li>
  <li class="glyphicon glyphicon-star-empty" data-star="2"></li>
  <li class="glyphicon glyphicon-star-empty" data-star="3"></li>
  <li class="glyphicon glyphicon-star-empty" data-star="4"></li>
  <li class="glyphicon glyphicon-star-empty" data-star="5"></li>
</ul>
$(function () {
    $('#stars').on("click","li",function () {
        for (var i = 4; i >= 0; i--) {
            if (i < $(this).data("star")|0 ) {
              // 要素の書き方が分からない・・・
              ???.toggleClass("glyphicon glyphicon-star");
            } else {
              ???.toggleClass("glyphicon glyphicon-star-empty");
            }
        }
    });
});


結局、idを振ってattrする方法で実現できたけど、data-に対してクラスをsetする方法ってどうやるんだろう??