我想使用jQuery检查一个li元素列表中哪个li元素是活动状态(它们表示菜单,我想要检查当前活动的菜单项)。
因此,我将所有li项存储在变量myElements中。然后我询问myElements的长度,并对它们应用一些样式更改,到这里一切正常。显然,以这种方式,我的变量myElements是一个Nodelist,而不是一个数组,因此我声明另一个变量myElements_array,其中包含与myElements相同的元素,并且是一个数组(也经过测试并正常工作)。
然后我尝试检查myElements_array中哪个元素具有“current-menu-item”类,但它不起作用,谷歌浏览器控制台显示错误:“Uncaught TypeError:myElements_array [j] .hasClass 不是函数”。是否有人有想法可能的原因是什么?
<script type='text/javascript'>
var myElements = jQuery("#navbar > ul > li");
var count = myElements.length;
for (var i = 0; i < myElements.length; i++) {
myElements[i].style.width = (100/count)+'%';
}
var myElements_array = [];
for(var i = myElements.length; i--; myElements_array.unshift(myElements[i]));
var j = 0;
while (! myElements_array[j].hasClass('current-menu-parent') ) {
j++;
}
document.write(j);
</script>
.hasClass
是 jQuery 的方法,不能在 DOM 对象上调用。 - Barmarvar j = jQuery("#navbar > ul > li.current-menu-parent").length;
- Travis J