当Element不可用时,如何绕过JS Uncaught Typeerror

时间:2015-07-27 22:10:20

标签: javascript dom

采取这个简单的功能:

$ = function(expr, con) {
    return typeof expr === "string"? (con || document).querySelector(expr) : expr || null;
}

如果元素在DOM中可用,则效果很好。如果没有,你得到一个Typeerror和JS解析停止。 我不想检查每个元素是否存在:

if($("elem")) $("elem").innerHTML = "...";

我只想打电话

$("elem").innerHTML = "...";

元素不可用时没有出错。

2 个答案:

答案 0 :(得分:1)

这是我认为你能做到的:



$ = function(expr, con) {
    var el = typeof expr === "string"? (con || document).querySelector(expr) : expr || null;
    return el || document.createElement("div");
}


$("elem").innerHTML = "...";




因此你不会得到任何错误,因为如果你的元素不可用,该函数将返回 ghost元素而不是

答案 1 :(得分:0)

只需调整if / else即可。

$ = function(expr, con) {
    return typeof expr === "string"? ((con || document).querySelector(expr) || {}) : expr;
}