我该如何包装 document.getElementById 以免在找不到 ID 时抛出 TypeError?

What do I wrap a document.getElementById so as not to throw a TypeError when ID can't be found?

我正在使用 Hammer.js 库 (http://hammerjs.github.io/) 在原始 javascript 环境中启用触摸手势。包括图书馆后,我有一个在我的画廊页面上工作的电话。如果在页面上找不到 id 幻灯片,则调用失败。由此产生的 TypeError 还会阻止执行该站点的其他 js。我对此很陌生,但是通过阅读我认为我需要将这段代码包装在测试中,这样如果 id slide 不存在它就不会 运行 。了解如何执行此操作将帮助我解决其他 ID 和库的一些其他问题。

所以在 Hammer.js 代码之后我有自己的代码:

var slide = document.getElementById('slide');
var mc = new Hammer(slide);
mc.on("swipeleft", function(ev) {
var url = document.querySelector('a.next').getAttribute('href');
if (url) {
    window.location = url;
}
});

mc.on("swiperight", function(ev) {
var url = document.querySelector('a.prev').getAttribute('href');
if (url) {
    window.location = url;
}
});

如果页面不包含 id 幻灯片,我如何防止执行此代码? (当我说它不包含它时,我的意思是它不会存在于那个页面上,并不是说 DOM 还没有准备好。)

谢谢。

测试一下:

var slide = document.getElementById('slide');

if( slide ){
  // .. your code
}

如果slide为假,则结束周围函数的执行:

var slide = document.getElementById('slide');    
if (!slide) return;
//... The rest of your code