在后端渲染数据的时候,常常会出现这样的状况,页面某些模块没有数据,考虑页面的美观和用户的体验,可能没有数据的模块会选择不进行显示,这样的结果会导致跟这个模块相关的js报错,因为找不到相应的DOM元素,我选择的解决方法是判断元素是否存在?如果存在相应元素才执行相应的js模块;
//检测元素是否存在的function
function haveThisElement(selector){
var flag = ($(selector).length > 0) ? true : false;
return flag;
}
//根据判断结果来执行不同的code
if (haveThisElement(".className")) {//这里可以是类名、id、或者元素本身
//元素存在时执行的code
}
else{
//元素不存在时执行的code
}