Javascript 尝试获取文档时出错。getElementsByName(名称)
我一直在尝试在我的一个项目中使用此代码: 编辑:链接到有问题的代码 当前形式的代码使用:Javascript 尝试获取文档时出错。getElementsByName(名称),javascript,jquery,Javascript,Jquery,我一直在尝试在我的一个项目中使用此代码: 编辑:链接到有问题的代码 当前形式的代码使用: var byId = function (id) { return document.getElementById(id); } base = difflib.stringAsLines(byId("baseText").value), newtxt = difflib.stringAsLines(byId("newText").value), 但是,我尝试改用“名称”字段: var b
var byId = function (id) { return document.getElementById(id); }
base = difflib.stringAsLines(byId("baseText").value),
newtxt = difflib.stringAsLines(byId("newText").value),
但是,我尝试改用“名称”字段:
var byName = function (name) { return document.getElementsByName(name); }
base = difflib.stringAsLines(byName("field1")[0].value),
newtxt = difflib.stringAsLines(byName("field2")[0].value),
追加子代码如下所示:
diffoutputdiv.appendChild(diffview.buildView({
baseTextLines: base,
newTextLines: newtxt,
//opcodes: opcodes,
baseTextName: "Base Text",
newTextName: "New Text",
contextSize: contextSize,
viewType: viewType
}));
我还向html添加了'name=“field1”
完整来源可在此处找到:
我经常遇到的错误是:
Uncaught TypeError: Object #<NodeList> has no method 'appendChild' demo.html:69
diffUsingJS demo.html:69
onclick demo.html:98
uncaughttypeerror:Object#没有方法'appendChild'demo.html:69
diffUsingJS demo.html:69
onclick demo.html:98
返回的数据相当于原始的byID数据集。请提供帮助。在您的代码中:
//diffoutputdiv = byId("diffoutput"),
diffoutputdiv = byName("diffoutput"),
在从byId
到byName
的转换过程中,您忘记了从返回的匹配列表中获取元素。同样,getElementsByName
返回节点列表,getElementById
返回单个节点
diffoutputdiv = byName("diffoutput")[0]
在代码中:
//diffoutputdiv = byId("diffoutput"),
diffoutputdiv = byName("diffoutput"),
在从byId
到byName
的转换过程中,您忘记了从返回的匹配列表中获取元素。同样,getElementsByName
返回节点列表,getElementById
返回单个节点
diffoutputdiv = byName("diffoutput")[0]
您发布的代码中没有
appendChild
。但是看看pastebin代码,问题相当明显。使用byName
时忘记获取元素,即diffoutputdiv=byName(“diffoutput”)[0]
。是这样吗?不知怎的,您在diffoutputdiv
中得到了多个元素……代码希望它是一个
,而不是一个节点列表,它显然是被分配给它的。啊,我知道原因-这是因为您将getElementById
更改为getElementByName
…我会看看是否能找到答案…您发布的代码中没有appendChild
。但是看看pastebin代码,问题相当明显。使用byName
时忘记获取元素,即diffoutputdiv=byName(“diffoutput”)[0]
。是这样吗?不知怎的,你在diffoutputdiv
中得到了多个元素。代码希望它是一个
,而不是一个节点列表,这显然是分配给它的。啊,我知道为什么-这是因为你将getElementById
更改为getElementByName
。我看看是否能想出一个答案。。。