采取以下简单功能:

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


如果元素在DOM中可用,则效果很好。如果不是,则会出现Typeerror并停止JS解析。
我不想检查每个元素是否存在:

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


我只想打电话

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


当元素不可用时不会出现错误。

最佳答案

这是我认为您可以做的:



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


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





这样就不会出现任何错误,因为如果您的元素不可用,该函数将返回一个ghost元素

关于javascript - 当元素不可用时如何绕过JS Uncaught Typeerror,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31664190/

10-13 04:21