JavaScript中的赋值变量始终为null

时间:2015-01-23 10:23:53

标签: javascript

我有一个在页面上重复30次的下拉列表。我创建了一个应该处理value的函数,但是每次我在浏览器中单步执行时,变量总是null

我正在调用我的selectonchange="showDropDown(capability_4_1_b,this.value)"

我的职能:

function showDropDown(id,value) {
var nc = document.getElementById(id);
  if (value === "NC" || value === "OBS") {
      nc.style.display = 'block';
  } else {
      nc.style.display = 'none';
  }
}

我定位的div是<div id="capability_4_1_b" style="display:none;">

我查看了源代码,元素在DOM我的JS文件位于页面底部。 Developer tools

上面的函数是我开始执行functions的方法,但我希望用一个函数来实现。这些功能有效,但重复次数过多:)。

4 个答案:

答案 0 :(得分:2)

capability_4_1_b是一个变量。浏览器将其解析为Element对象。然后,JavaScript将其转换为字符串,然后尝试查找具有与其匹配的ID的元素。

您需要传递一个字符串。

onchange="showDropDown(&quot;capability_4_1_b&quot;,this.value)"

答案 1 :(得分:1)

onchange="showDropDown(capability_4_1_b,this.value)"

您没有引用capability_4_1_b,因此无效。

onchange="showDropDown('capability_4_1_b',this.value)"

答案 2 :(得分:0)

您需要传递一个实际字符串:

onchange="showDropDown('capability_4_1_b', this.value)"
                       ^                ^

否则,您实际上是passing the element itself,这就是您没有收到错误的原因。

答案 3 :(得分:0)

只需修改

中的onchange方法调用即可

<强>平变化= “showDropDown(capability_4_1_b,THIS.VALUE)”

<强>平变化= 'showDropDown( “capability_4_1_b”,THIS.VALUE)'

您传递的id应该是字符串格式,因此需要用双引号写。