如何检查元素是否包含jQuery中的另一个元素

时间:2009-08-17 06:58:42

标签: jquery validation contains xval jquery-validate

我正在使用xVal combind和jquery.validate插件,但是遇到了一个小问题,因为它在某个实例中发布了两次验证消息。我认为在错误消息的放置中使用一些聪明的jQuery可以很容易地修复这个bug。

我正试图找到一种方法来查看ul是否已包含带有一些文本的li。

errorPlacement: function(error, element) {
     $("ul.errors:not(:contains(" + error + "))").append(error);
}

我认为像上面这样的东西可能有用,但不是这样的运气。 error.toString()也不起作用。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

查看:has选择器:

$("ul:has(li:contains('" + error + "'))")

上面的选择器会选择UL元素,其中LI元素包含error文字。

答案 1 :(得分:0)

此处没有该插件,我无法确定获取错误文本的相应属性,但您可以使用Firebug执行console.log error并查看它是什么。

你还需要在字符串周围添加引号。

$("ul.errors:not(:contains('" + errorString + "'))")

...并且不要忘记转义错误消息中的任何单引号!

答案 2 :(得分:0)

代码中的error是什么?
首先,您将其称为字符串:contains(" + error + "),然后将其称为元素 - .append(error);
如果这是一个元素,请尝试使用$(error).text()获取其文本,然后搜索ul中的文本。