如何筛选所选对象,然后隐藏未选中的对象

时间:2010-03-18 16:20:21

标签: jquery filtering

从昨天开始跟进......

这部分代码确实有用。

$(document).ready(function(){
$('#listMenu a').click(function (selected) {
        var getPage = $(this).attr('id');
        var getName = $(this).attr('name');

        //console.log(getPage);
        //console.log(getName);

            $(function() {
            $("#" + getName ).show();
            var getColor = $('#' + getName ).css('background-color');
            $('#header' ).css('background', getColor);
            $('#slideshow' ).css('background', getColor);
            $('span').css('background', getColor);
            $('#menuContainer').css('background', getColor);

        });

        $('li.listMenu ul').hide();
  });           
});

我能够得到我想要的东西;基于vars getPage和 getName,现在我需要隐藏未选中的内容。

我试过这个:

$(function() {
  var notSelected = $('div').filter(selected).attr('id', 'name');
  $(this).hide();
  console.log(notSelected);
});

位于上方:$('li.listMenu ul').hide();

但这不正确,记得我真的是个新手。

我在屏幕上看到的是应该隐藏的新选项。

再次感谢任何帮助。

-sjs

1 个答案:

答案 0 :(得分:2)

如果你点击div中的<a>,我相信你想要这个:

$('div').not($(this).closest('div')).hide();

或者,如果您打算淡出其他<a>元素:

$('#listMenu a').not(this).hide();

.not() function过滤那些与该组匹配的元素,因此.hide()将在其余元素上运行。在您的情况下,selected是点击事件,您想要的是this,它指的是点击来自的#listMenu a