Javascript .toLowerCase()的未定义函数在后台无声失败-但代码仍然可以正常工作

Javascript .toLowerCase()的未定义函数在后台无声失败-但代码仍然可以正常工作,javascript,jquery,html,Javascript,Jquery,Html,显然,让事情在后台失败是不好的,但这似乎是让这个例子持续工作的唯一方法。我该如何解决这个问题 有时,我需要在某些页面上检查带有数据属性的div,如果它是匹配的,则添加一个类。其他时候,我需要检查URL是否包含字符串,并将其附加到标题中 在没有要检查的数据属性的页面上,它抛出: scripts.js:88未捕获的TypeError:无法读取未定义的 因为没有要检查的数据属性 一切都是这样的: $window.onload,函数{ //突出显示相关菜单项 如果window.location.hre

显然,让事情在后台失败是不好的,但这似乎是让这个例子持续工作的唯一方法。我该如何解决这个问题

有时,我需要在某些页面上检查带有数据属性的div,如果它是匹配的,则添加一个类。其他时候,我需要检查URL是否包含字符串,并将其附加到标题中

在没有要检查的数据属性的页面上,它抛出:

scripts.js:88未捕获的TypeError:无法读取未定义的

因为没有要检查的数据属性

一切都是这样的:

$window.onload,函数{ //突出显示相关菜单项 如果window.location.href.indexOfstackoverflow>-1{ $.main-header-light.textSTACKOVERFLOW; } 变量标记名=$content.datacategory.toLowerCase; $.nav-item.eachfunction{ var menuItem=$this.text.toLowerCase; 如果menuItem==标记名{ console.logthis; $this.addClasssubnav-active; } }; }; 标题- 11 2. 34 44
所以不要把它放在一行中,把它分成两行

var tagName = $("#content").data("category")
if (tagName) {
  tagName = tagName.toLowerCase();
  $(".nav-item").each(function() {
    ...
  })
}

如果有必要,可能会添加一些修整。明白了。我知道我需要事先检查,但不清楚如何检查。$content.datacategory或$this.text为空。在调用之前检查它们是否为空。toLowerCaseOk,我知道我必须先检查它是否为空,但我没有意识到我需要在调用之前检查它。我想,即使我打电话给它,它也将是不确定的。