采取这个简单的功能:
$ = function(expr, con) {
return typeof expr === "string"? (con || document).querySelector(expr) : expr || null;
}
如果元素在DOM中可用,则效果很好。如果没有,你得到一个Typeerror和JS解析停止。 我不想检查每个元素是否存在:
if($("elem")) $("elem").innerHTML = "...";
我只想打电话
$("elem").innerHTML = "...";
元素不可用时没有出错。
答案 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;
}