我正在尝试为jQuery创建一个基本的验证码模块。我有一个不错的开始,但由于某种原因.children()似乎没有工作。在此处查看:http://jsfiddle.net/pTbeW/ 我目前有这个:
$(this).children('.captchain-start').hide();
$(this).children('.captchain-show').show();
如果我将其更改为
$('.captchain-start').hide();
$('.captchain-show').show();
它完美无缺。但是这个解决方案并不理想,因为它不允许这个验证码的两个实例位于同一页面上。我怀疑它与查询设置的html有关,但我不确定如何。我远不是一个javascript和jQuery专家,但这似乎是一件相对容易的事情。我错过了什么?看着它这么长时间我是否有疲惫的眼睛?任何帮助将不胜感激。
答案 0 :(得分:4)
因为'.captchain-*'
元素不是子元素,而是兄弟元素。请尝试以下方法:
$(this).nextAll('.captchain-start').hide();
$(this).nextAll('.captchain-show').show();
答案 1 :(得分:0)
this
在您的点击事件中引用被点击的元素,该元素是类“captchain-start”的元素。所以你不必扫描孩子,你可以使用:
$(this)
用于实际点击的元素或元素选择器
代替。
答案 2 :(得分:0)
您应该使用$(this).nextAll()
而不是$(this).children()
,因为要隐藏和显示的元素不是元素的子元素,而是兄弟元素。