在 jQuery 中对选定的子项进行分组
这一定是一件容易的事……
我有一个清单。我想显示每个列表项中的一个元素,并可以选择查看更多元素(如果有)。像这样:
<li class="item">
<div class="elementToShow">Shown Element</div>
<div class="elementsToBeHidden">Hidden Element</div>
</li>
<li class="item">
<div class="elementToShow">Shown Element</div>
</li>
<li class="item">
<div class="elementToShow">Shown Element</div>
<div class="elementsToBeHidden">Hidden Element</div>
</li>
然后我想在 jQuery 中添加一个按钮来公开其他元素:
$('.item).children('.elementsToBeHidden')
.wrapAll('<div class="hiddenElements"></div>');
$('<a class="hiddenElements"> See More </a>')
.appendTo($('.hiddenElements'))
.click(function() {
$('.elementsToBeHidden').slideToggle('slow');
});
不过,这会将所有隐藏元素分组到第一个列表项下。
如果我想显示第一项中的第一个隐藏元素和第三项中的第三个隐藏元素,那么缺少什么?
预先感谢您的任何帮助。
This has got to be an easy one...
I have a list. I want to show the one element in each list item, with an option to see more (if there are any). Like this:
<li class="item">
<div class="elementToShow">Shown Element</div>
<div class="elementsToBeHidden">Hidden Element</div>
</li>
<li class="item">
<div class="elementToShow">Shown Element</div>
</li>
<li class="item">
<div class="elementToShow">Shown Element</div>
<div class="elementsToBeHidden">Hidden Element</div>
</li>
I then want to add a button in jQuery to expose the other elements:
$('.item).children('.elementsToBeHidden')
.wrapAll('<div class="hiddenElements"></div>');
$('<a class="hiddenElements"> See More </a>')
.appendTo($('.hiddenElements'))
.click(function() {
$('.elementsToBeHidden').slideToggle('slow');
});
This, though, groups all the hidden elements under the first list item.
What is missing if I want to show the first hidden element in the first item and the third in the third item?
With thanks in advance for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么要在上课的时候费力把它们包裹起来呢?
试试这个: http://jsfiddle.net/GEJ29/2/
或同样的事情,但在我看来更好一点:
http://jsfiddle.net/GEJ29/3 /
原始答案:
您想单独对每个
进行操作。
试试这个: http://jsfiddle.net/wQ2V6/
Why bother wrapping them when they have a class?
Try this: http://jsfiddle.net/GEJ29/2/
or the same thing, but a little better in my opinion:
http://jsfiddle.net/GEJ29/3/
Original answer:
You want to operate on each
<li>
individually.Try this: http://jsfiddle.net/wQ2V6/