获取“Object#<nodelist>没有方法'click'”错误?</nodelist>

时间:2011-11-15 08:37:18

标签: jquery forms

我正在尝试在单独的div中添加一些多个表单字段。但是通过添加一些带按钮的div我在单击div中的按钮时会出现以下错误:

  

对象#没有方法'点击'

当我在第二个或第三个div下移动</form>标记时出现此错误。当我把</form放在我的第一个div下面时,我没有收到错误。表单总共有4个div,都带有一串按钮。

下一个按钮只显示下一组按钮(简单的jquery slideup / slidingown)。每个按钮都会触发一个名为win()的函数,如此

<input type=button class="team round1" value="a1" name="WIN0_1" onclick="win(this)"/>

现在每个div我给了一些相同名称的按钮(例如:name="WIN0_1"存在4次)

对于这个混乱的帖子感到抱歉,但我希望有人有个建议

PS:对于单独的div中的表单我遵循this教程。

2 个答案:

答案 0 :(得分:3)

NodeList对象是Node个对象的集合,通常由childNodesgetElementsByTagName / getElementsByTagNameNS返回。搜索代码.click(,您可能会发现它附加到一个对象,该对象的值是其中一个操作的结果,而不是您期望的jQuery对象。

通过在JS控制台中键入以下内容,您可以轻松地重现此错误以理解我的意思:

document.getElementsByTagName("div").click();

如果您正在努力找到问题的原因,那么您需要发布您的代码。

答案 1 :(得分:2)

好的,所以基于你的代码http://jsfiddle.net/123js/Xm5Rt看起来像通过复制带有输入的div来获得这一行上的按钮集合:

var winnerButton = winner.form.elements["WIN"+nextlevel+"_"+nextgame];

所以winnerButton不是1,而是多个按钮。

尝试触发元素集合上的click()时,会出现您提到的错误。

解决方案可能有很多东西......要知道你必须发布完整的html(形式+ div +输入),这样我们才能看到它。