代码有效,但控制台日志显示无法读取 null 的属性“indexOf”
在jsfiddle.net中是看不到的,这里是我想要的demo。
因为标记很糟糕,所以我必须找到 br 的每个节点值,并删除以作词、作曲、编曲和监制开头的行。它工作但为什么在控制台日志中有错误?
$('br').each(function () {
if ((this.nextSibling.nodeValue.indexOf('作詞') > -1) || (this.nextSibling.nodeValue.indexOf('作曲') > -1) || (this.nextSibling.nodeValue.indexOf('編曲') > -1) || (this.nextSibling.nodeValue.indexOf('監製') > -1)) {
$(this.nextSibling).remove();
$(this).remove();
}
});
最佳答案
正在提示 nextSibling
不存在。您必须进行防御性编码。
$('br').each(function () {
if (!this.nextSibling) {
return;
}
var nodeValue = this.nextSibling.nodeValue.trim();
var invalid = ['', '作詞', '作曲', '編曲', '監製'];
if (invalid.indexOf(nodeValue) !== -1) {
$(this.nextSibling).remove();
$(this).remove();
}
});
请注意,我对 Array.indexOf
的使用适用于 Internet Explorer 9+。因此,如果您需要支持 IE8,则必须使用 polyfill 或其他实现。
关于javascript - 无法读取 null 的属性 'indexOf',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25298629/