首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery选择正确的DOM元素

jQuery选择正确的DOM元素
EN

Stack Overflow用户
提问于 2011-03-01 01:20:08
回答 3查看 306关注 0票数 0

实况示例:

http://jsfiddle.net/KezWE/

我有几套无序列表(菜单+产品列表)。

我的排序脚本运行良好,但是当我尝试在一页中插入两个列表时--它们不是作为单独的列表工作,而是被排序的。我不想那样,我只想要一个菜单对下面的第一个列表进行排序,而不是两者都排序。

我一直在努力处理(这个).next()等问题,但是没有任何帮助。我无法更改DOM,只能编辑jQuery代码。

有什么想法吗?

HTML:

代码语言:javascript
复制
<ul class="menu">
    <li><a data-value="all" href="#">All</a></li>
    <li><a data-value="big" href="#">Big</a></li>
    <li><a data-value="small" href="#">Small</a></li>
</ul>

<ul class="list">
    <li><div data-value="big">BIG</div></li>
    <li><div data-value="small">SMALL</div></li>
    <li><div data-value="big">BIG</div></li>
    <li><div data-value="small">SMALL</div></li>
    <li><div data-value="big">BIG</div></li>
    <li><div data-value="big">BIG</div></li>
</ul>

<ul class="menu">
    <li><a data-value="all" href="#">All</a></li>
    <li><a data-value="big" href="#">Big</a></li>
    <li><a data-value="small" href="#">Small</a></li>
</ul>

<ul class="list">
    <li><div data-value="big">BIG</div></li>
    <li><div data-value="small">SMALL</div></li>
    <li><div data-value="big">BIG</div></li>
    <li><div data-value="small">SMALL</div></li>
    <li><div data-value="big">BIG</div></li>
    <li><div data-value="big">BIG</div></li>
</ul>

jQuery:

代码语言:javascript
复制
jQuery('ul.menu li a[data-value=all]').click(function(e) {
    jQuery('.list li div').show();
                e.preventDefault();
});

jQuery('ul.menu li a[data-value=big]').click(function(e) {
    jQuery('.list li div').show(); //I know this looks just BAD, but that's just for jsfiddle
    jQuery('.list li div[data-value=small]').hide();
                e.preventDefault();
});

jQuery('ul.menu li a[data-value=small]').click(function(e) {
    jQuery('.list li div').show(); //I know this looks just BAD, but that's just for jsfiddle
    jQuery('.list li div[data-value=big]').hide();
                e.preventDefault();
});

实况示例:

http://jsfiddle.net/KezWE/

EN

回答 3

Stack Overflow用户

发布于 2011-03-01 01:32:47

我想这就是你想要的结果:http://jsfiddle.net/KezWE/4/

让我知道!

票数 2
EN

Stack Overflow用户

发布于 2011-03-01 01:25:53

您能给您的ul是一个唯一的id并显式引用它们-使用".menu“将影响两个菜单-这是它应该如何工作。

票数 1
EN

Stack Overflow用户

发布于 2011-03-01 01:36:21

代码语言:javascript
复制
jQuery('ul.menu li a[data-value=all]').click(function(e) {
    var list = jQuery(this).closest('ul').next('.list');
    list.find('div').show();
    e.preventDefault();
});

jQuery('ul.menu li a[data-value=big]').click(function(e) {
    var list = jQuery(this).closest('ul').next('.list');
    list.find('div').show();
    list.find('div[data-value=small]').hide();
    e.preventDefault();
});

jQuery('ul.menu li a[data-value=small]').click(function(e) {
    var list = jQuery(this).closest('ul').next('.list');
    list.find('div').show();
    list.find('div[data-value=big]').hide();
    e.preventDefault();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5149519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档