javascript - 未捕获的类型错误:e.nextElementSibling.fadeToggle 不是函数
问题描述
我有错误:
Uncaught TypeError: e.nextElementSibling.fadeToggle is not a function
at HTMLSpanElement.e.addEventListener
奇怪的是,当我将:更改el.nextElementSibling.fadeToggle()
为:el.nextElementSibling.remove()
- 一切正常。有任何想法吗?
$(function () {
const spans = $('span');
const lists = $('ul')
const newArr = [];
for (x of spans) {
newArr.push(x);
}
newArr.forEach(fn)
function fn(el) {
el.addEventListener('click', () => el.nextElementSibling.fadeToggle();
)
}
})
解决方案
fadeToogle
可能是 jQuery 方法,nextElementSibling
而是常规 DOM 元素。
您必须将其包装在 jQuery 中才能使用 jQuery 方法,如
$(el.nextElementSibling).fadeToggle()
真正的问题是你为什么要这样做,什么时候可以这样做
$(function() {
$('span').on('click', function() {
$(this).next().fadeToggle();
});
});
之所以remove()
有效,是因为 jQuery 版本和本机版本的工作方式相同,因此对于常规 DOM 元素,您调用的是 native remove()
,而不是 jQuery 的版本。
推荐阅读
- r - 如何理解箱线图比较机器学习模型的性能指标?
- node.js - 请求帮助以继续使用语音命令连接我的设备
- mysql - 在加入 MySQL 时转置数据
- java - 如何修复:连接到 localhost 时出错:Java 中的连接被拒绝
- python - 将列表写为 tsv 文件中的列
- java - 从 Eclipse 导出后 System.out.println 不打印
- mysql - 如何检查表中是否存在数组的所有元素?
- angular - Angular 测试:TestBed 不需要提供 ApplicationRef
- python - slice(-4, 4, 0.25) 的确切含义是什么?
- java - Proguard 配置问题