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