获取元素的所有数据属性及其在jquery中的值

时间:2018-04-25 08:30:52

标签: javascript jquery

我有一个定义如下的元素:

<span class="road-btn js-road-btn" data-lat-s=' + row.LatL + ' data-lng-s=' + row.LongL + ' data-lat-e=' + row.LatD + ' data-lng-e=' + row.LongD +'> <i class="icon-pin"></i ></span > 

我在此元素上执行了一次点击事件:

$('.js-road-btn').on('click', function () {
    var latS = $(this).attr('data-lat-s');
    var longS = $(this).attr('data-lng-s');
    var latE = $(this).attr('data-lat-e');
    var longE = $(this).attr('data-lng-e');
});

我没有单独获取每个属性,而是想要整体检索所有属性值。然后我分开访问属性。我怎样才能在jquery中实现这个目标?

2 个答案:

答案 0 :(得分:3)

您可以使用jQuery方法 .data() ,如:

master

$(this).data(); //Will return the set of all the data-* attributes
$('.js-road-btn').on('click', function() {
  var attributes = $(this).data();

  console.log(attributes);

  alert(attributes.lngE);
});

答案 1 :(得分:2)

由于这些值都存储在data-*属性中,因此您可以使用data()(不带参数)在单个对象中检索它们:

&#13;
&#13;
$('.js-road-btn').on('click', function() {
  var data = $(this).data();
  console.log(data);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="road-btn js-road-btn" data-lat-s="lat-s" data-lng-s="lng-s" data-lat-e="lat-e" data-lng-e="lng-e"> 
  Click me
</span>
&#13;
&#13;
&#13;