0

我陷入了困境。我一直在尝试比较 javascript 中的两个变量,然后将一个类分配给父元素(如果匹配)。但我在这方面没有成功。我已经搜索了所有可能的代码并尝试了它们,但无法使其正常工作。到目前为止我写的代码如下:

$('div#encased a').click(function(){
        $('ul#filter .current').removeClass('current');
        var class_name = ($(this).parent().attr('class').replace('-',' '));
        var className = class_name.toString();
        alert(className);
        $('ul#filter li').each(function(){
            /*1st version
            var filterValue = $(this).text().toLowerCase();
            var filterValstr = filterValue.toString();
            alert(filterValstr);
            if(filterValstr==className)
            {
                alert("match!")
                $(this).parent().addClass('current');   
            }*/

            /*2nd version*/
            if($(this).text().toLowerCase() == class_name)
            {
                $(this).parent().addClass('current');   
            }
            /*this works which according to me means it is not entering the if clause
            else{
                $(this).parent().fadeOut('slow').addClass('hidden');    
            }*/
        });
    });

据我所知,当我尝试使用 else 函数时,该值根本不会进入 if 命令中,并且有效。我确信我正在做一些愚蠢的错误。我在这里尝试了 2 种方法,我评论了其中一种,但在这里介绍了两种方法,以了解它们中的任何一种是否正确。

基本上,在我的 div#encased 元素中单击图像时,会获取图像的类名,然后与上面过滤器菜单中的文本进行比较。如果它与匹配的过滤器文本匹配,则应为其分配 current 类。希望你得到我想要解释的东西。请帮忙。谢谢

4

1 回答 1

1

您的代码不清楚,有点像意大利面条,但也许您的问题是空格,请尝试修剪它们

var filterValue = $.trim($(this).text().toLowerCase());

而且您应该知道string.toString()返回字符串...
示例:

var str = "bla bla bla";
alert(str.toString === str); // true!
于 2012-06-10T07:59:33.150 回答