我处于困境中。我一直在尝试比较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函数并且有效。我确信我正在做一些愚蠢的错误。我在这里尝试了两种方法,我已经评论了一种,但在这里提出了两种方法,以了解它们是否应该是正确的。
基本上点击我的div#encased元素中的图像时,会拍摄图像的类名,然后将其与上面的过滤器菜单中的文本进行比较。如果匹配匹配的过滤器文本,则应分配当前类。希望你得到我想要解释的东西。请帮忙。感谢
答案 0 :(得分:1)
你的代码不清楚,有点像意大利面条,但也许你的问题是白色空间,试着修剪它们
var filterValue = $.trim($(this).text().toLowerCase());
你应该知道string.toString()
返回字符串......
例如:
var str = "bla bla bla";
alert(str.toString === str); // true!