jQuery元素无法选择parent()

前端之家收集整理的这篇文章主要介绍了jQuery元素无法选择parent()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
看来,使用以下内容选择元素:contains(sub)with sub contains<或>不能得到他们的父母. 以下示例应该说明我在Safari和Camino(Mac上的Gecko)中遇到的问题:
<html>
 <head>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
 </head>
 <body>
  <p><strong>bar</strong></p>
  <p><strong>&lt;foo&gt;</strong></p>
  <script type="text/javascript">
alert($('body strong:contains("bar")').length);
alert($('body strong:contains("bar")').parent().length);
alert($('body strong:contains("<foo>")').length);
alert($('body strong:contains("<foo>")').parent().length); // this fails
alert($('body strong').length);
alert($('body strong').parent().length); // two p elements
alert($('body strong').parent().parent().length); // one body
  </script>
 </body>
</html>

输出为:

1
1
1
0
2
2
1

任何想法为什么第四个是0而不是1,或者我如何规避这个?

This page提到在选择器中转义名称,但是这也不行(也不知道是否适用).

解决方法

不知道导致contains()失败,但可以使用.filter()作为替代:
alert($('body strong').filter(function() {
    return /<foo>/.test( $(this).text() );
}).parent().length);

这将按预期返回1.这是丑的,但工作.

猜你在找的jQuery相关文章