jQuery 中如何检查一个元素是否包含另一个元素
我将 xVal 与 jquery.validate 插件结合使用,但遇到了一个小问题,因为它在某个实例中发布了两次验证消息。我认为这个错误应该可以通过一些聪明的 jQuery 在错误消息的放置中相当容易地修复。
我正在尝试找到一种方法来查看 ul 是否已包含带有某些文本的 li 。
errorPlacement: function(error, element) {
$("ul.errors:not(:contains(" + error + "))").append(error);
}
我认为像上面这样的东西可能会起作用,但没有那么幸运。 error.toString() 也不起作用。
任何帮助将不胜感激。
I am using xVal combind with the jquery.validate plugin, but have come across a slight problem in that it is posting validation messages twice in a certain instance. I think this bug should be fairly easily fixed with some clever jQuery in the placement of the error message.
I am trying to find a way to see if a ul already contains an li with some text in it.
errorPlacement: function(error, element) {
$("ul.errors:not(:contains(" + error + "))").append(error);
}
I thought something like the above may work, but not such luck. error.toString() does not work either.
Any help would be greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看一下 :has 选择器:
上面的选择器将选择
UL< /code> 元素,其中有一个包含
error
文本的LI
元素。Give a look to the :has selector:
The above selector will select the
UL
elements which have aLI
element that contains theerror
text.此处没有该插件,我无法判断获取错误文本的适当属性是什么,但您可以使用 Firebug 执行
error
的console.log
并查看它是什么。您还需要在字符串两边加上引号。
...并且不要忘记转义错误消息中的任何单引号!
Not having that plugin here, I can't tell what the appropriate property is to get the error text, but you can use Firebug to do a
console.log
oferror
and see what it is.You'll also need to put quotes around the string.
...and don't forget to escape for any single quotes in the error message!
您的代码中的
错误
是什么?首先,您将其称为字符串
:contains(" + error + ")
,然后将其称为元素 -.append(error);
.< br>如果这是一个元素,请尝试使用
$(error).text()
获取其文本,并在 ul 中搜索文本。What is
error
in your code?First you refer to it as a string
:contains(" + error + ")
, but then you refer to it as an element -.append(error);
.If this is an element, try getting its text by using
$(error).text()
, and search for the text in the ul.