javascript - 比较javascript中的变量

标签 javascript html css

我陷入困境。我一直在尝试比较 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');    
            }*/
        });
    });

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

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

最佳答案

你的代码不清晰,有点像意大利面条,但也许你的问题是空格,尝试 trim 它们

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

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

var str = "bla bla bla";
alert(str.toString === str); // true!

关于javascript - 比较javascript中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10967122/

相关文章:

Javascript getElementsByTagName ("input").value 不返回结果

javascript - Extjs4 选择网格行值?

javascript - 在 Javascript 中创建和访问对象数组

带有工作示例的 JavaScript 站点

html - 旋转动画不适用于 Safari 9

html - 正确对齐社交按钮

html - 更改 Bootstrap 4 轮播控件颜色

javascript - 用javascript的jquery改变div的id

html - 无法从 Z 轴翻转 SVG 圆

javascript - Ajax 使用 CSS 加载页面