我的代码似乎无法访问数据属性名称,并且我尝试了许多不同的代码。
<div class="columns offer_table_rows" style=" position:relative;" data-personal="1" data-euro="" data-vehicle="122" data-roadside="neutral false " data-national="neutral false " data-home="neutral true" data-onward="neutral true" data-name="Different Brand 1">
$(".brandName").on('click', function() {
$wrapper.find('.offer_table_rows').sort(function(a, b) {
return $(a).dataset('name').toLowerCase() > $(b).dataset('name').toLowerCase();
}).appendTo($wrapper);
})
$wrapper.find('.offer_table_rows').sort(function(a, b) {
return b.dataset.name - a.dataset.name;
})
单击brandName过滤器按钮时,包装div查找一行并使用数据属性名称进行排序。我已经尝试了上述两种变体,但似乎都没有访问data属性,或者我只是不知道出了什么问题。
我肯定知道包装器找到了该行,并且所有工作都将一直有效,直到搜索到data属性为止,因为我有可以使用相同代码的数字排序。
编辑:这不是重复的,因为假定的答案不能回答这个问题。 使用$(a).data而不是我没有工作。我可以使用console.log数据名称 console.log($(a).data('name')),但它们似乎没有排序
EDIT2:
当评估data.a是否大于data.b =
时,我可以console.log true false`$(".brandName").on('click', function() { $wrapper.find('.offer_table_rows').sort(function(a, b) { // console.log(a.dataset.name >b.dataset.name); }) })
但是,如果我尝试使它成为一个返回并附加到包装器的函数,则它什么都不做