Javascript 未捕获类型错误:无法读取属性';拆分';未定义的-希望得到教训

Javascript 未捕获类型错误:无法读取属性';拆分';未定义的-希望得到教训,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,这已经被问过很多次了,但我是一个新手,非常渴望学习,所以我希望有人能花时间向我解释一下。我也无法使用当前可用的答案解决此特定错误 应显示在图像库标题下的图像库未显示,错误为: Uncaught TypeError: Cannot read property 'split' of undefined at HTMLAnchorElement.<anonymous> (scripts.js:1604) at Function.each (jquery.js:2) at a.fn.init

这已经被问过很多次了,但我是一个新手,非常渴望学习,所以我希望有人能花时间向我解释一下。我也无法使用当前可用的答案解决此特定错误

应显示在图像库标题下的图像库未显示,错误为:

Uncaught TypeError: Cannot read property 'split' of undefined
at HTMLAnchorElement.<anonymous> (scripts.js:1604)
at Function.each (jquery.js:2)
at a.fn.init.each (jquery.js:2)
at markScrollToTargets (scripts.js:1602)
at HTMLDocument.<anonymous> (scripts.js:1552)
at i (jquery.js:2)
at Object.fireWith [as resolveWith] (jquery.js:2)
at Function.ready (jquery.js:2)
at HTMLDocument.K (jquery.js:2)

您试图对不存在(未定义)的对象调用
.split()
。如果运行此代码段进行调试:

$('nav a').each(function (index) {
    var $this = $(this);
    console.log(index, $this, $this.attr('href'));
    var splitArray = $this.attr('href').split('-');
});

对于第9个元素,您将得到
8[a,上下文:a,选择器:”“]未定义的
。在尝试拆分之前,您应该检查锚点是否有a href。

是否可以显示您的代码?如果没有它,几乎不可能回答此问题。请确保正在调用的
.split
打开的值不是
未定义的。您可能没有传递正确的值,或者如果该值只是偶尔
未定义
,则需要对此加以防范,并决定在
未定义
的情况下要执行的操作。您认为该代码包含错误。我可以想象,您正在尝试使用拆分方法。似乎并非所有
nava
元素都具有
href
属性。你们想对那个些并没有的做些什么呢?代码添加到了帖子中。谢谢你们的回复。恐怕我不知道如何调试,所以不知道如何处理这个答案,或者如何使用它来解决我的问题——我几乎没有js经验。好吧。在粘贴的代码中,替换
var$aTags=$('nava')var$aTags=$('nava[href]')
,它应该可以工作。太棒了——非常感谢@Tipsy。为了澄清(尝试学习!),将“nav a”更改为“nav a[href]”,这意味着它只处理具有a href值的nav a元素?是的。jQuery使用CSS选择器(),使用正确的选择器可以节省很多麻烦。
$('nav a').each(function (index) {
    var $this = $(this);
    console.log(index, $this, $this.attr('href'));
    var splitArray = $this.attr('href').split('-');
});