我的标题中有一个js文件,可以在每个页面上运行。我的大多数页面使用这个js,但有一些不使用。我怎么能这样做,所以我没有在没有这个id的页面上得到这个错误?
JS:
var menuitems=document.getElementById(tabid).getElementsByTagName("a")
错误:
Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
答案 0 :(得分:4)
像这样使用if($(tabid).find('a').length){
runsJscode();
//or
//apend script in the head
}
。
AVAudioEngine
答案 1 :(得分:3)
如果条件包括
var tabEl = document.getElementById(tabid);
if(tabEl) {
var menuItems = tabEl.getElementsByTagName("a");
}
或者有一个技巧:
var menuItems = document.getElementById(tabid) && document.getElementById(tabid).getElementsByTagName("a");
我不知道后者是多么一致。我建议前一个。
答案 2 :(得分:1)
请继续检查是否null
。
var menuItems = document.getElementById(tabid);
if (menuItems != null) {
menuItems = menuItems.getElementsByTagName("a");
//blah blah more code
}
答案 3 :(得分:0)
var menuItems = document.getElementById(tabid);
if (menuItems != null || menuItems != undefined) {
// your code here
}
答案 4 :(得分:0)
document.getElementById() returns null if correspoding tag element is not found
因此请确保您的DOM中存在元素,然后使用值null
var items = document.getElementById(tabid);
if(items != null){
items = items.getElementsByTagName("a");
// do your stuff
}
// jQuery way
var items = $("#"+ tabid + " a"); // selector for descendent elements
if(items.length){
// do your stuff
}