未定义Javascript未捕获引用错误函数
检查小提琴以查看故障是否发生 当我向文本框中添加数据(即使我将其保留为空)并尝试单击“添加”时,它不会执行任何操作 打开Chrome和Firefox控制台都会出现相同的错误,它说“changeText2()”没有定义 我怎样才能解决这个问题?我已经多次遇到这个错误,而且大多数情况下都有非常奇怪的解决方法,但我不确定如何避免它,或者我到底做错了什么 似乎删除全局变量声明在大多数情况下都能解决这个问题,但是,在这种情况下我需要它们,我更希望知道为什么会发生这种错误以及如何发生这种错误 非常感谢您的任何帮助 Javascript:未定义Javascript未捕获引用错误函数,javascript,html,Javascript,Html,检查小提琴以查看故障是否发生 当我向文本框中添加数据(即使我将其保留为空)并尝试单击“添加”时,它不会执行任何操作 打开Chrome和Firefox控制台都会出现相同的错误,它说“changeText2()”没有定义 我怎样才能解决这个问题?我已经多次遇到这个错误,而且大多数情况下都有非常奇怪的解决方法,但我不确定如何避免它,或者我到底做错了什么 似乎删除全局变量声明在大多数情况下都能解决这个问题,但是,在这种情况下我需要它们,我更希望知道为什么会发生这种错误以及如何发生这种错误 非常感谢您的任
var list = document.getElementById('deliveryIdArray');
var names = [];
function changeText2() {
var deliveryIdentification = document.getElementById('deliveryIdentification').value;
names.push(deliveryIdentification);//simply add new name to array;
//array changed re-render list
renderList();
}
function renderList(){
while (list.firstChild) {
list.removeChild(list.firstChild);
}
//create each li again
for(var i=0;i<names.length;i++){
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(names[i]));
var removeButton = document.createElement('button');
removeButton.appendChild(document.createTextNode("remove"));
removeButton.setAttribute('onClick','removeName('+i+')');
entry.appendChild(removeButton);
list.appendChild(entry);
}
}
function removeName(nameindex){
names.splice(nameindex,1);
//array changed re-render list
renderList();
}
function getDeliveries(){
return names;
}
<b>Number(s): </b>
<input id = "deliveryIdentification" name = "deliveryIdentification" type = "text" size = "16" maxlength = "30">
<!-- Array Area Creation -->
<input type='button' onclick='changeText2()' value='Add' />
<ol id="deliveryIdArray">
</ol>
var list=document.getElementById('deliveryArray');
变量名称=[];
函数changeText2(){
var deliveryIdentification=document.getElementById('deliveryIdentification')。值;
name.push(deliveryIdentification);//只需将新名称添加到数组中;
//数组已更改重新渲染列表
renderList();
}
函数renderList(){
while(list.firstChild){
list.removeChild(list.firstChild);
}
//重新创建每个li
对于JSFiddle中的(var i=0;i,当您将包装设置为“onLoad”或“onDomready”时,您定义的函数仅在该块内定义,外部事件处理程序无法访问
最简单的修复方法是更改:
function something(...)
致:
将换行从“onload
”更改为“不换行
”
定义的函数具有不同的作用域。如果使用Angular.js,则嵌入HTML中的函数,例如onclick=“function()”或onchange=“function()”。它们将不会注册。您需要在javascript中进行更改事件。例如:
$('#exampleBtn').click(function() {
function();
});
将fiddle(左侧菜单)中的包装更改为“No wrap-in head”。@dystroy会导致错误,因为元素还不存在;)这将对您有所帮助……这很有效。更新的fiddle显示它有效。感谢您快速正确的回答。为我工作。认为这是Jquery vs Javascript的错误
$('#exampleBtn').click(function() {
function();
});