当前位置: 首页 > 知识库问答 >
问题:

未捕获的TypeError:undefined不是函数-不是JQuery

常温文
2023-03-14

对于提交另一个未捕获的TypeError我感到很糟糕:未定义不是一个函数问题。但是,在阅读了大约20种不同的答案后,我不是错过了重点,就是问题在这些情况下是不同的。

我有一个有两个单选按钮的表单。单击一个时,我希望它更改标记的innerHTML。

这是我的小提琴。

HTML:

<form name="myForm" autocomplete="off" action="index.php" method="post" enctype="multipart/form-data">
<label for="mode">Text</label>
<input type="radio" name="mode" value="text" id="setText" />
<label for="mode">Image</label>
<input type="radio" name="mode" value="img" id="setImg" />
<table>
<tr id="headerInput"></tr>
</table>
</form>

JavaScript:

document.getElementById("setText").addEventListener("click", function () {
window.getElementById("headerInput").innerHTML = '<td>Title</td><td><input type="text" name="title" value="Hello" /></td>';
});
document.getElementById("setImg").addEventListener("click", function () {
window.getElementById("headerInput").innerHTML = '<td>Banner</td><td><input type="file" name="banner" /></td>';
});

我尝试了几个不同的版本,比如使用onclick=“someFunction()”属性和object.onclick创建命名函数。它们都给了我同样的错误。非常感谢您帮助我了解我正在做的事情。

共有2个答案

宋航
2023-03-14

您应该引用document.getElementById()而不是window.getElementById()。此外,更改innerHTML也是可以的,但如果要进行任何操作,我们应该参考tr中的td。这是最好的做法。

document.getElementById("headerInput").innerHTML

工作小提琴:http://jsfidle.net/7fpbg/

幸弘光
2023-03-14

Window.GetElementById()在浏览器中未正常定义。

窗口上查找属性“Get ElementById”返回未定义。然后尝试调用undefined,因此未捕获的TypeError:undefined不是函数

您可能是想在那里改用document

 类似资料:
  • 问题内容: 我正在努力推动 作为新的ID和json字符串的值。但是它给出了以下错误 提前谢谢您的回复 问题答案: 要使用Array的push函数,您的var必须是一个Array。 更改为以下内容: 包含的数组项将是typeof对象,您可以执行以下操作: 注意:请保持一致。在我的示例中,一个数组包含对象属性,而另一个仅包含对象属性。如果我使用或进行迭代,那么我将无法始终检查一个属性,因为我的示例包含

  • 我在控制台中得到以下错误:。 也许问题出在不推荐的JSXTransformer上(https://facebook.github.io/react/blog/2015/06/12/deprecating-jstransform-and-react-tools.html)。建议使用Babel代替(在我的例子中,使用Babel!view/todolist代替jsx!view/todolist)。我对此

  • 问题内容: 我正在尝试使webpack和mapbox-gl在Meteor系统中一起工作。我到处都在寻找有关上述错误的信息,但是没有任何效果。这是我的webpack设置 供您参考,我使用了Reactive Stack提供的webpack,它设置webpack的方式略有不同。 这是我的npm设置 我做错了什么?感谢MDG的人可以解释该错误,因为我认为它与Meteor系统有关。仅供参考,我用来运行页面

  • 问题内容: 我有一个简单的对象,如下所示: 我需要创建两个数组。第一个数组是对象中所有键的数组。我通过以下方式创建了此数组: 这很好。我得到了一些国家。现在,当我尝试从值创建数组时… 我收到此错误: 我不知道我在做什么错。我在声明前后,对象仍然相同。如何正确使用? 问题答案: 在许多浏览器中不受支持-您可以用来获取所有值的数组: 请参见MDN文档:https://developer.mozilla

  • 问题内容: 我正在使用reactjs,并且在尝试显示JSON数据(来自文件或服务器)时似乎无法阻止此错误: 这些都没有帮助我解决问题。在页面加载后,我可以验证this.data.props是否未定义(并且确实具有与JSON对象等效的值- 可以使用调用),因此当被调用时,似乎没有及时加载对话列表。如何确保该方法适用于JSON数据而不是变量? 编辑:添加示例conversations.json 注意-

  • 我们将Google Maps API V3包含在我们的内部系统中,代码如下: