javascript - jQuery 检查 div 是否包含文本不起作用

标签 javascript jquery

我有这样的代码:

$(document).ready(function () {
   var el = $('#solving'); 
   //var el = $('#solving:contains("Ожидайте появления новой капчи!...")');   
    setInterval(function(){
      console.log("Checking if el has text");
      if (el.text() == 'Wait! Ожидайте появления новой капчи!...'){
        console.log("Reloading");
      }
    },2000);
});

但在日志中我看到它不起作用,即使页面包含:我也没有看到记录器的重新加载:

<div id="solving">
          Wait! Ожидайте появления новой капчи!...
        </div>

我也尝试:

$('#solving:contains("Wait! Ожидайте появления новой капчи!...")')

怎么了?如何检查我的 div 是否存在某些文本?

最佳答案

您可以执行以下操作:

if ($('#solving:contains("Wait! Ожидайте появления новой капчи!...")').length > 0) {
  // found
}

参见http://jsfiddle.net/8644K/1/ 。即使您的选择器包含 :contains(...) ,它只是一个选择器。这不会改变 $(<selector>) 的返回值到一个 bool 值,它仍然是一个可能匹配的对象的列表。因此,您可以检查可以找到多少个匹配的对象。

正如文档 ( http://api.jquery.com/contains-selector/ ) 所说,选择包含指定文本的所有元素。

关于javascript - jQuery 检查 div 是否包含文本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762878/

相关文章:

javascript - 如何使可拖动元素跟随鼠标指针

javascript - 尝试使用 jquery 编辑背景图像,解释字符串错误

javascript - 基于 json 到数组数组的日期的平均值

javascript - 使用 jsViews/jsRender 并将属性重新调整为字典条目

javascript - jQuery .change() 未在选择时触发 - 来自 api.jquery.com 的示例

javascript - 找到div并改变颜色

javascript - 加载 &lt;script&gt; 内容后是否加载 jQuery.load() ?

javascript - 在显示在屏幕上之前获取渲染元素的高度(ReactJS)

javascript - jQuery/jQuery 移动点击/滑动事件

javascript - 需要 Javascript 方面的建议 - 每个 div 的新字体系列