javascript - JQuery - 在事件类时获取值数据属性

标签 javascript jquery html

anchor 标签在我的 console.log 中有一个事件类时,我试图显示 data-attribute

不幸的是,它总是输出一个null值。

我提到了这个stackoverflow question

这是我的HTML:

$(document).ready(function () {

  $('.list-group-item').on('click', function (e) {

    var previous = $(this).closest(".list-group").children(".active");
    previous.removeClass('active'); // previous list-item
    $(e.target).addClass('active'); // activated list-item

    var itemType = $('.list-group a').find('.active').data('itemtype');

    console.log(itemType);

  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="list-group">
  <a href="#" class="list-group-item" data-itemtype="1">Cras justo odio</a>
  <a href="#" class="list-group-item" data-itemtype="0">Dapibus ac facilisis in</a>
  <a href="#" class="list-group-item" data-itemtype="3">Morbi leo risus</a>
  <a href="#" class="list-group-item" data-itemtype="4">Porta ac consectetur ac</a>
  <a href="#" class="list-group-item" data-itemtype="2">Vestibulum at eros</a>
</div>

请帮助我走上正轨。

提前致谢

最佳答案

因为要在具有类 list-group 的 div 中找到 "active" 类,所以使用 $('.list-group').find(' .active').data('itemtype') 选择器代替 $('.list-group a').find('.active').data('itemtype').

您的选择器 $('.list-group a').find('.active').data('itemtype') 将尝试查找 active 类在具有类 list-group 的 div 的 a 标签中,这是问题所在。

请检查工作片段。

$(document).ready(function () {

  $('.list-group-item').on('click', function (e) {

    var previous = $(this).closest(".list-group").children(".active");
    previous.removeClass('active'); // previous list-item
    $(e.target).addClass('active'); // activated list-item

    var itemType = $('.list-group').find('.active').data('itemtype');

    console.log(itemType);

  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="list-group">
  <a href="#" class="list-group-item" data-itemtype="1">Cras justo odio</a>
  <a href="#" class="list-group-item" data-itemtype="0">Dapibus ac facilisis in</a>
  <a href="#" class="list-group-item" data-itemtype="3">Morbi leo risus</a>
  <a href="#" class="list-group-item" data-itemtype="4">Porta ac consectetur ac</a>
  <a href="#" class="list-group-item" data-itemtype="2">Vestibulum at eros</a>
</div>

关于javascript - JQuery - 在事件类时获取值数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255154/

相关文章:

JavaScript - 创建一个函数通过传递对象来更新变量?

javascript - 是否可以在 cordova 应用程序中使用 annyang 进行语音识别?

javascript - Node 中的永久 session 存储

javascript - 通过 AJAX 使用单个提交按钮提交多个 HTML 表单

javascript - JQuery 下拉列表问题

javascript - 传递查询字符串后自动在不同页面提交表单?

javascript - HTML/CSS/JS 中未捕获的类型错误

Javascript CF_HDROP 实现

javascript - 如何使用 javascript 验证预定义值

javascript - JQuery - 在新闻流中切换 div