为什么 `document.getElementById(“#datepicker1”)` 找不到我的元素?

Why does `document.getElementById(“#datepicker1”)` not find my element?

我正在尝试根据下拉列表的选择来显示/隐藏文本输入。

这是我正在尝试做的 JSFiddle

当我进入函数时,我得到一个TypeError: Cannot set 属性 'type' of null.

这是代码:

function showCustomDate(val) {
  console.log(val);
  if (val == 4) {
    var y = document.getElementById("#datepicker1");
    
    //console.log(y.type);
    y.type = "text";
  }
  else {
    var y = document.getElementById("#datepicker1");
    
    //console.log(y.type);
    y.type = "hidden";
  }
};

y 为 null,因为元素的 id 可能是 datepicker1 而不是 #datepicker1

var y = document.getElementById("#datepicker1");

应该是

var y = document.getElementById("datepicker1");

使用 getElementById 时不需要 #getElementById returns null 如果没有找到元素。 null 没有名为 typeproperty - 因此您得到错误。

function showCustomDate(val) {
   console.log(val);
   if (val == 4) {
      var y = document.getElementById("datepicker1"); //removed #
      //console.log(y.type);
      y.type = "text";
   } else {
       var y = document.getElementById("datepicker1"); //removed #
       //console.log(y.type);
       y.type = "hidden";
   }
};