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
。我看看是否能想出一个答案。。。