从复选框更改自定义属性数据的问题

时间:2015-01-23 21:57:54

标签: javascript jquery

请您查看this demo并告诉我为什么我无法在每个复选框检查中获取自定义属性数据值?

$('.styles-control').change(function () {
         console.log(this.data('style'));

});
<input type="checkbox" class="styles-control" data-style="road">Roads
<br />
<input type="checkbox" class="styles-control" data-style="poi">Poi
<br />
<input type="checkbox" class="styles-control" data-style="water">Water
<br />
<input type="checkbox" class="styles-control" data-style="transit">translink
<br />

2 个答案:

答案 0 :(得分:1)

.data是一个jQuery方法,在jQuery中包装this

console.log($(this).data('style')); //this.getAttribute("data-style")

答案 1 :(得分:1)

您可以使用dataset.style:

 $('.styles-control').change(function () {
     console.log(this.dataset.style);
 });

     $('.styles-control').change(function () {
         console.log(this.dataset.style);
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" class="styles-control" data-style="road">Roads
<br />
<input type="checkbox" class="styles-control" data-style="poi">Poi
<br />
<input type="checkbox" class="styles-control" data-style="water">Water
<br />
<input type="checkbox" class="styles-control" data-style="transit">translink
<br />