1

私はこのような順序付けられていないリストを持っています:

<ul id="frozen" data-name="nameOfSelect" class="tagit">
   <li class="tagit-choice" tagvalue="2" style="padding-right: 4px;" id="tag-2">
      <div class="tagit-label" data-value="2">kázeň</div>
   </li>
   <li class="tagit-choice" tagvalue="1" style="padding-right: 4px;" id="tag-1">
      <div class="tagit-label" data-value="1">žalmxxxx</div>
   </li>
</ul>

クリック関数をそれらすべてにバインドしid="tag-1"、関数で使用するのデータを取得する必要があります。

私はこれを試しました:

$('#[id|="tag"]').each(function(){
    var tag = this.attr('id'); 
    var tagID = tag.replace('tag-',''); 
    this.click(function (){
       alert('index.php?s=taglist&tag=' + tagID);
       //window.location = string;
    });
});

ただし、何らかの理由で<li>、セレクターに問題があるため、このアプローチは要素に対して間違っているようです(そうです)。多分私も愚かな何かを逃しています...何かアイデアはありますか?

4

1 に答える 1

5

ループは必要ありません。jQueryはこれを内部的に実行し、プロパティthisを持つネイティブDOM要素ですが、メソッドはありません。idattr()

$('[id^="tag-"]').on('click', function() {
    var tag = this.id,
        tagID = tag.replace('tag-', '');

    alert('index.php?s=taglist&tag=' + tagID);
});
于 2013-03-03T16:27:57.710 に答える