Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript参数对象引用未知_Javascript_Html - Fatal编程技术网

javascript参数对象引用未知

javascript参数对象引用未知,javascript,html,Javascript,Html,考虑以下代码(仅限于相关代码): JS function ToggleRow(objTwistie, objRow) { if (objRow.style.display == "none") { objRow.style.display = ""; objTwistie.src = "../Images/SectionDown.gif"; } else { objRow.style.display = "none"; objTwistie.src = "

考虑以下代码(仅限于相关代码):

JS

function ToggleRow(objTwistie, objRow) {
  if (objRow.style.display == "none") {
    objRow.style.display = "";
    objTwistie.src = "../Images/SectionDown.gif";
  } else {
    objRow.style.display = "none";
    objTwistie.src = "../Images/SectionUp.gif";
  }
}
HTML

<form method="post" action="./WelcomePage.aspx?Tab=2" id="form1">
  <table>
    <tr>
      <td>
        <table>
          <tr>
            <td>
              <img id="MyTwistie1" onclick="ToggleRow (MyTwistie1,SubRow1)" src="../Images/SectionDown.gif" alt="alt">&nbsp;
            </td>
            <td>
              <div><span onclick="ToggleRow (MyTwistie1,SubRow1)" style="font-size:13px"><b>Header Row</b></span></div>
            </td>
          </tr>
        </table>
      </td>
    </tr>
    <tr id="SubRow1">
      <td>
        This is the section that gets hidden
      </td>
    </tr>
  </table>
</form>

标题行
这是隐藏的部分
当我在img标记中调用onclick事件(单击页面上的图像)时,两个对象引用都会正确地传递给ToggleRow函数,并且脚本运行正常

但是,当调用span onclick事件中的事件时,只有对objRow的引用正确传递,而对MyTwistie1的引用生成一个错误,声明“MyTwistie1”未定义。我意识到有更好的方法可以做到这一点,但我只需要理解为什么这是失败的


编辑:使用getElementById的建议非常有效。如果有人能解释为什么它自己通过传递ID就失败了,那就太棒了。

我建议用
document.getElementById('MyTwistie1')
替换
MyTwistie1
,用
document.getElementById('SubRow1')替换
SubRow1
onClick
事件调用中。

MyTwistie1
SubRow1
全局变量吗?它们是在哪里定义的?@brso05-由于一些可怕的传统,这些变量将被自动定义,因为有些元素的ID就是这个名称。在我看来,这是一种糟糕的编码方式。@jfriend00哦,好吧,我不知道……谢谢你的解释。它似乎工作得很好@mjorisen它只是看起来那样。对SubRow1的引用被正确传递,并且无论单击哪个元素,节都被隐藏。但是,只有当我单击图像时,对图像的引用才会正确传递,并且更改图像的脚本失败。