如何在Javascript中循环检查文档中的字符串?

时间:2013-05-19 14:12:48

标签: javascript string loops button

我正在尝试制作一个搜索特定文字的代码,如果找到它会点击一个按钮。它需要不断检查字符串,但我正在努力找到一种方法来实现。我是一个完整的编码新手,所以任何帮助表示赞赏! :)

var findMe = [
    //Test
    'Hello!',
];

function findText() {
    var text = document.querySelector('div[id=BtnText]');

    for (var i = 0; i < findMe.length; i++) {
        if (BtnText.match(findMe[i])) {
            var btnDo = document.querySelector('input[type="submit"][value="Click!"]');
            if (btnDo) {
                btnDo.click();
            }
        }
    }
}

3 个答案:

答案 0 :(得分:1)

稍微编辑你的代码。

我假设您有这样的HTML?

<div id="BtnText">Hello!</div><input type="submit" value="Click!">

您将把代码更改为

var findMe = [
    //Test
    'Hello!',
];

function findText() {
    var div = document.querySelector('div[id=BtnText]');

    for (var i = 0; i < findMe.length; i++) {
        if (div.innerText.indexOf(findMe[i]) !== -1) {               
            var btnDo = document.querySelector('input[type="submit"][value="Click!"]');
            if (btnDo) {
                if (typeof btnDo.onclick == "function") {
                    btnDo.onclick.apply(elem);
                }
            }
            return true;
        }
    }
    return false;
}

如果你想连续检查。我建议使用setInterval。

var interval = setInterval(function() {
   var textFound = findText();
   if(textFound) {
       clearInterval(interval);
   }
},50);

答案 1 :(得分:0)

正则表达式:

(new RegExp('word')).test(str)

(new RegExp(/word/)).test(str)

的indexOf:

str.indexOf('word') !== -1

搜索() 在字符串中搜索指定值或正则表达式,并返回匹配的位置。

var n=str.search("word");

 var n-str.search(/word/);
    if(n>0)
    {}

使用window.find()

if (window.find("word", true)){}
//code
while(window.find("word",true){
//code
}

答案 2 :(得分:0)

为什么需要不断进行检查? 您应该采用另一种方法......或者您的脚本将被Chrome阻止,例如,如果它使页面不负责任。你可以暂停,就像Taylor Hakes建议的那样......或者只是调用你的findText函数附加到div上的onChange事件。