如果页面有某些元素,如何运行js

时间:2015-10-05 06:13:46

标签: javascript jquery

我的标题中有一个js文件,可以在每个页面上运行。我的大多数页面使用这个js,但有一些不使用。我怎么能这样做,所以我没有在没有这个id的页面上得到这个错误?

JS:

var menuitems=document.getElementById(tabid).getElementsByTagName("a")

错误:

Uncaught TypeError: Cannot read property 'getElementsByTagName' of null

5 个答案:

答案 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
}