【问题标题】:Any tricks to finding a lost jQuery object?找到丢失的 jQuery 对象有什么技巧吗?
【发布时间】:2011-03-17 15:33:42
【问题描述】:

我正在使用 jQuery.validate。它的选项之一是“成功”,其中可以在表单上的有效用户输入时调用函数。唯一可以传递的参数是“标签”,它(据我所知)是输入元素右侧动态添加的标签字段。

我需要对兄弟“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');
            },

【问题讨论】:

  • 如果我没记错的话,验证标签会附加到文档的开头(或结尾),并且它们设置为绝对定位,并带有触发验证(或错误)的控件的偏移量.您应该使用 Firebug (getfirebug.com) 并检查您的 HTML 以找到该元素。
  • 我刚刚使用了 Firebug,但找不到“标签”的任何位置……您认为有办法将另一个对象传递给 jquery.validate 成功选项吗?例如,元素?我试了一下,它在警报时显示“未定义”。
  • 嗨,Marko,您的 Firebug 答案将朝着正确的方向发展。如果您将其发布为答案,我会接受。

标签: javascript jquery jquery-selectors jquery-validate traversal


【解决方案1】:

这个问题有点针对具体情况,因此对其他人可能不是很有用...

但是我没有使用“标签”,而是根据来自 jQuery.validate 的另一个动态选择器声明一个全局变量(在这种情况下,我使用了来自 jQuery.validate 的“errorPlacement”的“元素”)。

成功了。

Marko 还建议在 cmets 中通过查看 Firebug (getfirebug.com) 控制台生成的代码来查找丢失的元素。好点子!我没有找到我丢失的标签,但它应该有效,并且可能对其他人有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2012-12-01
    • 2017-05-19
    相关资源
    最近更新 更多