在jQuery中遇到.click(...)问题

时间:2012-09-20 08:27:07

标签: javascript jquery html

所以我刚开始尝试在大约一个小时前学习jQuery,我已经this code

只是想弄清楚为什么$(".actions .readbody").click(...)行似乎不起作用。

我最初使用此功能,其中所有按钮都在< ul >而不是< div >(并且每个按钮都有自己的< li >)。 readbody类被添加到Read body按钮的< li >,而不是直接添加到按钮。有问题的一行更像是$(".actions li.readbody button").click(...)

完整代码发布在jsfiddle:http://jsfiddle.net/J6u5X/

5 个答案:

答案 0 :(得分:1)

我jsFiddled你的例子 - 以这种方式摆弄代码要容易得多。见http://jsfiddle.net/v7ayc/

我注意到的第一件事是你的点击处理程序=循环中的while运算符,我想你的意思是==

无论如何,用以下代码替换函数体来切换内容:

$(this).parent('.actions').siblings('.body').toggle();

一般来说,jQuery提供了更简单,更易读的遍历DOM的方法。随意使用它而不是标准的DOM接口。

答案 1 :(得分:0)

来自Link .actions没有子类.readbody?使用$('.actions button').click..或给你的按钮一个类名,并在click方法中引用它们

答案 2 :(得分:0)

请参阅此链接Jquery

  $(".test").val()
  $("#test").val()

 .test is class name of the HTML tag
 #test is id name of the HTML tag 

答案 3 :(得分:0)

问题是您在点击处理程序中尝试执行的操作无效。您通过两个parentNode调用

遍历链路太远
var mybody = this.parentNode.parentNode

这需要

var mybody = this.parentNode

您只需要一个访问文章正文。

按照您的预期http://jsfiddle.net/8zsr5/2/

查看更新的小提琴

答案 4 :(得分:0)

我认为问题是JavaScript根本无法找到您需要的元素。

我已经修改了你的代码来切换while循环并且我已经完成了它。这是一个fiddle