我正在使用jQuery.validate。其中一个选项是“成功”,其中可以在表单上的有效用户输入时调用函数。唯一可以传递的参数是“label”(据我所知)是一个动态添加的标签字段,位于input元素的右侧。
我需要对兄弟“div”执行一系列操作,但是我在尝试遍历我想要的div时遇到了很大的麻烦。我甚至找不到标签的位置。有找到它的技巧吗?
我使用了诸如alert (label.parents('.formrow').html());
和alert (label.parent().parent().parent().html());
之类的内容,它们都返回“null”... alert (label.html());
返回“”
过去,类似的方法对我有用。一旦找到了某些内容,我就会使用next()
或find()
,一切都很好。还有另一种方式吗?
PS。示例代码:
success: function(label) {
errorspotholder = label.parents('.formrow').find('.rederrorx');
errorspotholder.removeClass('rederrorx').addClass('norederrorx').qtip('destroy');
},
答案 0 :(得分:1)
这个问题有点针对具体案例,因此可能对其他任何人都没有用......
但是我所做的而不是使用“label”是基于来自jQuery.validate的另一个动态选择器声明一个全局变量(在这种情况下,我使用了jQuery.validate的“errorPlacement”中的“element”)。
有效。
Marko还在评论中建议通过查看Firebug(getfirebug.com)控制台生成的代码来查找丢失的元素。很好的主意!我没有找到丢失的标签,但它应该有用,可能适用于其他人。