我已经为此转动了一段时间。我有一个这样构造的对象数组:
0: {name: "Coaches", isActive: true, locations: Array(13)}
1: {name: "Directors", isActive: false, locations: Array(13)}
2: {name: "Trainers", isActive: false, locations: Array(5)}
我有一个导航菜单,当鼠标进入时会获得订单项的文本。现在,我试图在数组中将该文本与名称文本进行比较,以便我可以构建位置的子项
$('.nav ul').hide();
$('.nav li').mouseenter(function () {
$(this).children('ul').stop().slideDown('slow');
var text = $(this).find('span').text();
//console.log(text);
var item = leftNavData.modules.findIndex(i => i.name.toLowerCase() === "coaches");
var i = leftNavData.modules.find(x => x.name.toLowerCase() == text.toLowerCase());
console.log(i);
console.log(item);
}).mouseleave(function () {
$(this).children('ul').stop().slideUp('slow')
});
即使我将鼠标悬停在其他元素上,结果也始终会返回第一个指导的同一对象。
文本在变化,但是查找始终重新调整第一个对象。
findIndex始终为0。
有什么想法或我想念的东西吗?
谢谢
答案 0 :(得分:1)
基于对.toLowerCase()
是方法而不是属性的误解而导致的简单错误。
.toLowerCase()
不是
.toLowerCase