javascript - <ul><li> 元素的 jQuery 点击函数

标签 javascript jquery

我有一个无序列表,如下所示:

<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>

我需要将点击功能绑定(bind)到所有这些并获取 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> 似乎是错误的元素,因为我在使用选择器时遇到了问题(看起来)。也许我还遗漏了一些愚蠢的东西......有什么想法吗?

最佳答案

不需要循环,jQuery 在内部完成,this 是一个原生 DOM 元素,它有一个 id 属性,但没有 attr() 方法:

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

    alert('index.php?s=taglist&tag=' + tagID);
});

关于javascript - <ul><li> 元素的 jQuery 点击函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15187767/

相关文章:

jquery - 查找具有类别 1 或类别 2 的元素

javascript - 使用下拉菜单平滑滚动到 anchor 标签

javascript - Dialogflow 复合实体参数在不应定义时未定义

javascript - 以时间格式显示 NVD3 y 轴标签

jquery - MVC4 不显眼的验证不等待远程验证完成

javascript - jQuery:将选择框值和文本转换为对象

javascript - ScrollMagic:setClassToggle() 不适用于 DOM 对象作为参数

javascript - Node js 的 npm 操纵杆问题

javascript - Bootstrap - 如何缩小图像以适应窗口高度?

javascript启用和禁用组合框