我有这样的代码:
$(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在某些文本的存在?
答案 0 :(得分:1)
您现有的代码间隔为2秒。我已更改为400毫秒。
$(document).ready(function () {
var el = $('#solving');
//var el = $('#solving:contains("Ожидайте появления новой капчи!...")');
setInterval(function(){
console.log("Checking if el has text");
if (el.text().indexOf("Wait!") != -1){
console.log("Reloading");
}
}, 400);
});
答案 1 :(得分:1)
您可以执行以下操作:
if ($('#solving:contains("Wait! Ожидайте появления новой капчи!...")').length > 0) {
// found
}
见http://jsfiddle.net/8644K/1/。即使您的选择器包含:contains(...)
,它也只是一个选择器。这不会将$(<selector>)
的返回值更改为布尔值,该布尔值仍然是可能匹配的对象列表。因此,您可以检查可以找到这些匹配对象的数量。
正如文档(http://api.jquery.com/contains-selector/)所说,选择包含指定文本的所有元素。
答案 2 :(得分:1)
使用
el.text().trim()== 'Wait! Ожидайте появления новой капчи!...'
当您使用下一行
启动文本时,您必须删除换行符$(document).ready(function () {
var el = $('#solving');
//var el = $('#solving:contains("Ожидайте появления новой капчи!...")');
setInterval(function(){
console.log("Checking if el has text" + el.text());
if (el.text().trim() == 'Wait! Ожидайте появления новой капчи!...'){
console.log("Reloading");
}
},2000);
});
答案 3 :(得分:1)
使用带有el.text()的trim(),因为div文本有空格。
var el = $('#solving');
//var el = $('#solving:contains("Ожидайте появления новой капчи!...")');
setInterval(function(){
console.log("Checking if el has text");
if (el.text().trim() == 'Wait! Ожидайте появления новой капчи!...'){
console.log("Reloading");
}
},2000);
答案 4 :(得分:1)
您的问题是您的div在其内容的开头包含空格,因此您应该使用$.trim()
删除空格,如下所示: DEMO FIDDLE
if ($.trim(el.text()) == 'Wait! Ожидайте появления новой капчи!...'){
console.log("Reloading");
}
但使用length()
的解决方案更好,正如@Remo所建议的那样:
if ($('#solving:contains("Wait! Ожидайте появления новой капчи!...")').length > 0) {
console.log("Reloading");
}
答案 5 :(得分:0)