当我尝试执行此代码时:
$('.pagination-item')[$('.blog-item:visible').index()].addClass("active");
在 IE8 中有这样的信息:
对象不支持属性或方法“addclass”
实际上,甚至 .hide() 或 .show() 都不能针对 $('.pagination-item')[0] 执行。我怀疑IE8中的数组元素管理有问题。你有什么线索吗?为什么会出现这个错误?
当我尝试执行此代码时:
$('.pagination-item')[$('.blog-item:visible').index()].addClass("active");
在 IE8 中有这样的信息:
对象不支持属性或方法“addclass”
实际上,甚至 .hide() 或 .show() 都不能针对 $('.pagination-item')[0] 执行。我怀疑IE8中的数组元素管理有问题。你有什么线索吗?为什么会出现这个错误?
$('.pagination-item')[$('.blog-item:visible').index()]
返回一个 dom 对象引用,而不是 jQuery 包装器对象,因此它没有该addClass
方法。
您可以使用.eq()
$('.pagination-item').eq($('.blog-item:visible').index()).addClass("active");
当您像这样使用索引器访问 jquery 对象时,返回的对象是一个没有 jquery 方法的 DOM 对象。你可以试试:
$('.pagination-item:eq('+ $('.blog-item:visible').index() +')').addClass("active");
改变
$('.pagination-item')[$('.blog-item:visible').index()].addClass("active");
至
var index = $('.blog-item:visible').index();
$('.pagination-item').eq(index).addClass("active");
它不漂亮,但它应该工作。