Javascript 基于文档查询选择器不工作定义VAR

Javascript 基于文档查询选择器不工作定义VAR,javascript,html,jquery,Javascript,Html,Jquery,我试图定义变量的基础上,如果某些Id的存在。例如: if (document.querySelector("a#sell")) { var sell; } else if (document.querySelector("a#buy")) { var buy; } else if (document.querySelector("a#area")) { var area; } else { var contact; } 它不起作用了。如果我在不使用下面的If/e

我试图定义变量的基础上,如果某些Id的存在。例如:

if (document.querySelector("a#sell")) {
    var sell;
} else if (document.querySelector("a#buy")) {
    var buy;
} else if (document.querySelector("a#area")) {
    var area;
} else {
    var contact;
}
它不起作用了。如果我在不使用下面的If/else语句的情况下对它们进行定义,它们就可以正常工作:

   var sell = document.querySelector("a#sell");
   var buy = document.querySelector("a#buy");
   var area = document.querySelector("a#area");

但是我必须有if/else语句,这样没有这些id的任何联系表单都会表现不同。我做错了什么?

第一个示例中似乎没有定义变量。虽然您确实声明了一个变量,但并没有设置该变量

我可以推荐这种性质的东西吗

var selected; 
if (document.querySelector("a#sell")) {
    selected = document.querySelector("a#sell");
} else if (document.querySelector("a#buy")) {
    selected = document.querySelector("a#buy");
} else if (document.querySelector("a#area")) {
    selected = document.querySelector("a#area");
} else {
    selected = null;
}
否则,您也可以这样做:

if (document.querySelector("a#sell")) {
    var sell = document.querySelector("a#sell");
} else if (document.querySelector("a#buy")) {
    var buy = document.querySelector("a#buy");
} else if (document.querySelector("a#area")) {
    var area = document.querySelector("a#area");
} else {
    var contact; // You still need to set this.
}

这似乎真的是一个错误。解释与表格相关的更高级别问题。我猜你还有另一组
if/else
来检查那些会使上述变量完全冗余的变量这里是JS文件[link[()。我猜是因为这些元素中有多个同时出现在同一页上,这会影响到它吗?不太确定。这并不能解释您试图用代码膨胀解决的更高级别的问题。您可能可以在这些
中的每个
上使用一个公共类来简化此问题,并使用一个基于该类的事件侦听器作为selector并检查事件句柄中的id有一个公共类,它是“a.popup”。但当我将else if设置为a.popup时,它不起作用。出于某种原因,它不起作用。我要注意,这些变量中的多个同时出现在这个页面上,并且在单击时会被激活。如果有帮助,这是JS文件:@kevinborouman,我的答案的第一部分不会满足您的需要,但第二部分应该更接近这个目标l、 您确定没有在文档准备好之前提供这些功能吗?