gpt4 book ai didi

javascript - 如何使用 jquery 显示每 2 项具有许多不同 div 的所有数据?

转载 作者:行者123 更新时间:2023-11-27 22:56:35 25 4
gpt4 key购买 nike

我想每个 div 显示 3 个项目,许多 div 不同于点击链接加载更多的 Action 。我的代码如下:

<div class="wadah" id="list_1">
<a href="" class="wadah__item" id="list_item_1_1">
aaa
</a>

<a href="" class="wadah__item" id="list_item_1_2">
bbb
</a>
<a href="" class="wadah__item" id="list_item_1_3">
ccc
</a>
<a href="" class="wadah__item" id="list_item_1_4">
ddd
</a>
<a href="" class="wadah__item" id="list_item_1_5">
eee
</a>
<a href="" class="wadah__item" id="list_item_1_6">
fff
</a>
<div id="loadMore" class="LoadMore">Load more 1</div>
</div>

<div class="wadah" id="list_2">
<a href="" class="wadah__item" id="list_item_2_1">
2_a
</a>

<a href="" class="wadah__item" id="list_item_2_2">
2_b
</a>
<a href="" class="wadah__item" id="list_item_2_3">
2_c
</a>
<a href="" class="wadah__item" id="list_item_2_4">
2_d
</a>
<a href="" class="wadah__item" id="list_item_2_5">
2_e
</a>
<a href="" class="wadah__item" id="list_item_2_6">
2_f
</a>

<div id="loadMore" class="LoadMore">Load more 2</div>
</div>

javascript代码:

$(function () {
$(".wadah__item").slice(0, 2).slideDown().css('display', 'flex');
$(".LoadMore").on('click', function (e) {
e.preventDefault();

$(".wadah__item:hidden").slice(0, 2).slideDown().css('display', 'flex');

if ($(".wadah__item:hidden").length == 0) {
$(".LoadMore").fadeOut('slow');
}

$('html,body').animate({
scrollTop: $(this).offset().top
}, 2000);
});
});

我希望每个链接加载更多被点击,然后出现的项目是每个 div 的 2。

链接演示:https://jsfiddle.net/mrcrabs/5g9uao73/13/

最佳答案

需要根据点击的元素过滤掉wadah__item元素。因此,获取点击元素的父级并获取其中的隐藏元素。要获得第一个 2 child ,您可以使用 :nth-child() pseudo-class selector使用公式 -n + 2(选择第二个和第一个 child )。

$(function() {
$(".wadah .wadah__item:nth-child(-n + 2)").slideDown().css('display', 'flex');
$(".LoadMore").on('click', function(e) {
e.preventDefault();

$(this).parent().find(".wadah__item:hidden").slice(0, 2).slideDown().css('display', 'flex');

if ($(this).parent().find(".wadah__item:hidden").length == 0) {
$(this).fadeOut('slow');
}

$('html,body').animate({
scrollTop: $(this).offset().top
}, 2000);
});
});

$(function() {

$(".wadah .wadah__item:nth-child(-n + 2)").slideDown().css('display', 'flex');
$(".LoadMore").on('click', function(e) {
e.preventDefault();

$(this).parent().find(".wadah__item:hidden").slice(0, 2).slideDown().css('display', 'flex');

if ($(this).parent().find(".wadah__item:hidden").length == 0) {
$(this).fadeOut('slow');
}

$('html,body').animate({
scrollTop: $(this).offset().top
}, 2000);
});
});
.wadah {
margin: 30px 0;
}

.wadah__item {
border: 1px solid #ddd;
border-top: none;
padding: 1rem;
}

.wadah__item {
display: none;
}

#loadMore {
color: green;
cursor: pointer;
}

#loadMore:hover {
color: black;
}

#showLess {
color: red;
cursor: pointer;
display: none;
}

#showLess:hover {
color: black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>

<head>
<title></title>
</head>

<body>
<div class="wadah" id="list_1">
<a href="" class="wadah__item" id="list_item_1_1">
aaa
</a>

<a href="" class="wadah__item" id="list_item_1_2">
bbb
</a>
<a href="" class="wadah__item" id="list_item_1_3">
ccc
</a>
<a href="" class="wadah__item" id="list_item_1_4">
ddd
</a>
<a href="" class="wadah__item" id="list_item_1_5">
eee
</a>
<a href="" class="wadah__item" id="list_item_1_6">
fff
</a>
<div id="loadMore" class="LoadMore">Load more 1</div>
</div>

<div class="wadah" id="list_2">
<a href="" class="wadah__item" id="list_item_2_1">
2_a
</a>

<a href="" class="wadah__item" id="list_item_2_2">
2_b
</a>
<a href="" class="wadah__item" id="list_item_2_3">
2_c
</a>
<a href="" class="wadah__item" id="list_item_2_4">
2_d
</a>
<a href="" class="wadah__item" id="list_item_2_5">
2_e
</a>
<a href="" class="wadah__item" id="list_item_2_6">
2_f
</a>

<div id="loadMore" class="LoadMore">Load more 2</div>
</div>


</body>

</html>


更新:您甚至可以使用 CSS 而不是 jQuery 代码来显示前 2 个元素。

.wadah .wadah__item:nth-child(-n + 2){
display : flex;
}

$(function() {


$(".LoadMore").on('click', function(e) {
e.preventDefault();

$(this).parent().find(".wadah__item:hidden").slice(0, 2).slideDown().css('display', 'flex');

if ($(this).parent().find(".wadah__item:hidden").length == 0) {
$(this).fadeOut('slow');
}

$('html,body').animate({
scrollTop: $(this).offset().top
}, 2000);
});
});
.wadah {
margin: 30px 0;
}

.wadah__item {
border: 1px solid #ddd;
border-top: none;
padding: 1rem;
}

.wadah__item {
display: none;
}

#loadMore {
color: green;
cursor: pointer;
}

#loadMore:hover {
color: black;
}

#showLess {
color: red;
cursor: pointer;
display: none;
}

#showLess:hover {
color: black;
}

.wadah .wadah__item:nth-child(-n + 2) {
display: flex;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>

<head>
<title></title>
</head>

<body>
<div class="wadah" id="list_1">
<a href="" class="wadah__item" id="list_item_1_1">
aaa
</a>

<a href="" class="wadah__item" id="list_item_1_2">
bbb
</a>
<a href="" class="wadah__item" id="list_item_1_3">
ccc
</a>
<a href="" class="wadah__item" id="list_item_1_4">
ddd
</a>
<a href="" class="wadah__item" id="list_item_1_5">
eee
</a>
<a href="" class="wadah__item" id="list_item_1_6">
fff
</a>
<div id="loadMore" class="LoadMore">Load more 1</div>
</div>

<div class="wadah" id="list_2">
<a href="" class="wadah__item" id="list_item_2_1">
2_a
</a>

<a href="" class="wadah__item" id="list_item_2_2">
2_b
</a>
<a href="" class="wadah__item" id="list_item_2_3">
2_c
</a>
<a href="" class="wadah__item" id="list_item_2_4">
2_d
</a>
<a href="" class="wadah__item" id="list_item_2_5">
2_e
</a>
<a href="" class="wadah__item" id="list_item_2_6">
2_f
</a>

<div id="loadMore" class="LoadMore">Load more 2</div>
</div>


</body>

</html>

关于javascript - 如何使用 jquery 显示每 2 项具有许多不同 div 的所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55509127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com