JavaScript - 获取数据属性的值返回undefined

时间:2016-05-14 10:30:20

标签: javascript jquery html

所以我有一个data-time属性,它包含从我的数据库中获取的整数值。我得到它的值,但它返回undefined。我检查了浏览器,我的data-time属性正确存储了值。 这真的很奇怪,因为我在此之前做了同样的事情并且它没有返回undefined。这是我的代码:

<option data-price="{{ $availableOption->price * $course }}" data-time="{{ $availableOption->delivery_time }}">
...
</option

脚本

$('.config-option option:selected').each(function() {
    var currentElement = $('this');
    var optionDeliveryTimeStr = currentElement.attr('data-time');
    console.log(optionDeliveryTimeStr);
});

我之前使用data-price属性执行完全相同的操作,并将值作为字符串返回。但它不适用于data-time属性。如果有人能提供解决方案和解释,我将非常感激。

2 个答案:

答案 0 :(得分:4)

你的问题就在这一行

 var currentElement = $('this');

this删除引号并将其替换为

 var currentElement = $(this);

答案 1 :(得分:0)

使用$(currentElement)代替currentElement:

$('.config-option option:selected').each(function() {
    var currentElement = $(this);
    var optionDeliveryTimeStr = $(currentElement).attr('data-time'); // OR $(currentElement).data('time');
    console.log(optionDeliveryTimeStr);
});