【发布时间】:2022-01-21 09:54:36
【问题描述】:
我想传递(返回) data-filter 值和 children text ,我可以传递 data-filter 值但是我无法通过儿童文本。我的 HTML 和 JQuery 如下:
$(document).ready(function() {
$('.sidebar-filter').on('click', function() {
var filterobj = {};
$(".sidebar-filter").each(function(index, ele) {
var filterval = $(this).children('a').text();
var filterkey = $(this).data('filter');
filterobj[filterkey] = Array.from(document.querySelectorAll('li[data-filter=' + filterkey + '].active')).map(function(el) {
return ele.value;
});
});
console.log(filterobj);
});
});
<ul>
<li class="sidebar-filter " data-filter="category" data-value="1">
<a href="#">Item Name</a>
</li>
</ul>
我的回报会是这样的:
类别:数组 [undefined]
我想要数组中的值而不是未定义的。
【问题讨论】:
-
1) 你没有任何
li类活动2).map(function(el) { ele.value...将使用外部.each 中的ele。修复这些并且它可以工作(?)jsfiddle.net/rf76teyb 但是 3)li元素没有.value属性,因此不清楚您要尝试在最终数组中获得什么。也许$(el).data("value")? jsfiddle.net/rf76teyb/1 -
我有 css 添加 class=点击时激活。现在打印数据过滤器值,但我无法将文本传递到数组中。我想传递来自 li 的数据值或来自标签的文本。
-
它有效。谢谢你。你能分享我如何通过 children('a').text();与 $(el).data("value") 相同
-
$(el).text()会得到所有孩子的文本,不需要先选择孩子
标签: javascript jquery