jquery - 通过 jquery 获取选定的订单类型
问题描述
我正在尝试使用 Adaptive Horizontal Tab Menu 插件根据各种条件(例如最新、最相关等)对我的订单进行排序。我使用 ajax 和部分加载来加载过滤器结果。在发送 ajax 请求之前查看我选择的排序类型没有问题。当部分视图在 html 中被替换时,问题就出现了。我将 Jquery 用于 ajax 进程。我知道我必须使用类似跟随的东西,但它根本不起作用。我认为这与我正在使用的插件有关。我把html和javascript代码。
<div id="tabs" class="ah-tab-wrapper dt-sl">
<ul id="tabul" class="ah-tab dt-sl orderby">
<li id="1" class="ah-tab-item" value="1" data-ah-tab-active="true">
مرتبط ترین
</li>
<li id="2" class="ah-tab-item" value="2">
پربازدیدترین
</li>
<li id="3" class="ah-tab-item" value="3">
جدیدترین
</li>
<li id="4" class="ah-tab-item" value="4">
پرفروش ترین
</li>
<li id="5" class="ah-tab-item" value="5">
ارزان ترین
</li>
<li id="6" class="ah-tab-item" value="6">
گران ترین
</li>
</ul>
</div>
javascript代码:
$(document).on('click', '#tabul.ah-tab li', function (e) {
alert($(this).val());});
通过简单地通过 id 选择这个 ul 或者它的类不起作用。我真的很困惑。任何帮助是极大的赞赏。非常感谢你。
解决方案
不是 100% 确定您需要什么,但使用下面的代码可以按顺序显示所有 id。
或者显示所有<li>
具有该data-ah-tab-active="true"
属性的元素。
片段:
$(document).on('click', '.optionA', function() {
var arr = $(".ah-tab-item").map(function() {
return this.id; // RETURN ID OF LI ELEMENT
});
$("#result").html(""); // CLEAR DIV RESULTS
$("#result").append(arr.get().join(", ")); // SHOW RESULTS
});
$(document).on('click', '.optionB', function() {
var arr = $(".ah-tab-item[data-ah-tab-active=true]").map(function() {
return this.id; // RETURN ID OF LI ELEMENT
});
$("#result").html(""); // CLEAR DIV RESULTS
$("#result").append(arr.get().join(", ")); // SHOW RESULTS
});
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="tabs" class="ah-tab-wrapper dt-sl">
<ul id="tabul" class="ah-tab dt-sl orderby">
<li id="1" class="ah-tab-item" value="1" data-ah-tab-active="true">ONE</li>
<li id="2" class="ah-tab-item" value="2">TWO</li>
<li id="3" class="ah-tab-item" value="3">THREE</li>
<li id="4" class="ah-tab-item" value="4" data-ah-tab-active="true">FOUR</li>
<li id="5" class="ah-tab-item" value="5">FIVE</li>
<li id="6" class="ah-tab-item" value="6">SIX</li>
</ul>
</div>
<div>
<button type="button" class="optionA btn btn-primary">Display ALL LI id's by current sort</button>
</div>
<button type="button" class="optionB btn btn-secondary">Display ALL LI id's which have attribute "data-ah-tab-active = active"</button>
<div class="card">
<div id="result" class="card-body">Click a button above</div>
</div>
推荐阅读
- mysql - 在 Docker 容器外安装 MySQL 数据库
- javascript - 使用在集合中获得的值,将包含该集合索引的数组中的值推送到单独的数组中
- networking - 分布式选举算法在实践中是如何实现的(Bully、Ring 算法)?
- php - 我在加载网站时遇到问题,是否需要很长时间才能加载?
- swift - iOS 图表折线图缺少最后一个轴标签
- python - 如何获取字典键组合的唯一值集?
- php - 这种“模式”有名称吗?
- android-studio - Flutter Navigator.pop 不会发回数据
- android-studio - 如何根据我在 Android Studio 中的自定义词典在特定于语言环境的 strings.xml 中获得拼写警告?
- php - Guzzle Gmail API 消息请求失败 - 需要登录