这个功能可以缩短吗?
'
$(function () {
let section1 = $('.amount_1').attr('data-product_id');
let section2 = $('.amount_2').attr('data-product_id');
let section5 = $('.amount_5').attr('data-product_id');
let section10= $('.amount_10').attr('data-product_id');
let section15 = $('.amount_15').attr('data-product_id');
let $link1 = $("#" + section1).find('a').clone().text('');
if ($link1.length > 0) {
$('.col1').removeAttr("href").removeClass("single").wrap($link1).addClass("active");
}
let $link2 = $("#" + section2).find('a').clone().text('');
if ($link2.length > 0) {
$('.col2').removeAttr("href").removeClass("single").wrap($link2).addClass("active");
}
let $link5 = $("#" + section5).find('a').clone().text('');
if ($link5.length > 0) {
$('.col5').removeAttr("href").removeClass("single").wrap($link5).addClass("active");
}
let $link10 = $("#" + section10).find('a').clone().text('');
if ($link10.length > 0) {
$('.col10').removeAttr("href").removeClass("single").wrap($link10).addClass("active");
}
let $link15 = $("#" + section15).find('a').clone().text('');
if ($link15.length > 0) {
$('.col15').removeAttr("href").removeClass("single").wrap($link15).addClass("active");
}
});
'
也许在一个for循环中?我真的不知道为什么,因为数字是随机的。提前感谢
2条答案
按热度按时间guicsvcw1#
如果您有权更改HTML,我个人建议您使用一个可以一次性收集的类来更改它......并将
amount
移动到它自己的data属性例如,HTML中的
class="amount_1"
将变为class="amount" data-amount="1"
等另请注意,jQuery提供了
.data()
method,因此您不需要使用attr
vaqhlq812#
对我来说,它看起来并不那么“随机”,数字
1, 2, 5, 10, 15
是相当重复的。提取它们并将它们用作jquery选择器的一部分。如下所示(upd,仅1个循环的版本):