验证元素是否存在并将其传递给函数

时间:2014-04-21 16:59:59

标签: javascript jquery

我有以下内容:

google.maps.event.addDomListener(window, 'load', setMap);

function setMap() {
  var canvas = document.getElementById('map');
  // more code
}

我正在使用JQuery。

如何检查元素" map"存在......

仅在函数setMap存在时才调用它...

并传递它而不是在setMap函数中定义它。

5 个答案:

答案 0 :(得分:0)

试试这个:

google.maps.event.addDomListener(window, 'load', setMap);

function setMap() {
  var mapElement = $("#map");
  if(mapElement.length == 0)
  {
    return;
  }
  var canvas = document.getElementById('map');
  // more code
}

答案 1 :(得分:0)

如果canvas未返回元素,则变量null将设置为getElementById()

参考:https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById

答案 2 :(得分:0)

  

“如何检查元素”map“是否存在...”

getElementById的结果与null

进行比较
  

“仅在函数setMap存在时才调用它...”

使用if()声明


  

“并传递它,而不是在setMap函数中定义它。”

setMap

上定义参数
function setMap(canvas) {
  // more code
}

并将元素传递给它。

var canvas = document.getElementById('map');
if (canvas != null) 
    setMap(canvas);

不再依赖于再次查询DOM的jQuery解决方案是:

$("#map").each(setMap);

并定义您的setMap参数,如下所示:

function setMap(i, canvas) {
  // more code
});

答案 3 :(得分:0)

使用map提出getElementById元素,如果setMap不是map,请致电null

var map = document.getElementById('map');
if(map) setMap(map);

答案 4 :(得分:-1)

使用Jquery:

var canvas = $('map');
if(map.length){
  //element map exists


  // more code
}

使用Javascript:

var map= document.getElementById('map');
if ( map!= null) {//element map exists more code
}