用户在javascript / jQuery中查看链接文本

时间:2016-06-10 02:39:47

标签: javascript jquery html loops

我正在尝试创建一个用户来查看链接文本更改的页面。该脚本应该:

  1. 如果没有链接,页面会在10秒后刷新。
  2. 如果存在链接但是包含我不想要的关键字(在此示例中,我不关心的词是“电话”),请刷新页面。
  3. 当存在不包含关键字的链接时提醒我(即使有另一个认为包含所述关键字)。在这个例子中,应该触发它的单词应该是“email”,但是当有一个链接不包含单词“phone”时,我也希望得到警告。
  4. I've come up with a jsfiddle to sort of simulate the page I would be watching with this script here,顶部只是模拟可能发生的页面上的随机更改。在示例中,我希望在出现关键字“email”时收到警报,无论其他链接是否存在。

    这是我试图写这篇文章的可怕尝试。我不知道为什么,但我似乎无法围绕完成此任务所需的正确逻辑和循环。我已经到处都是,现在它可能是一团糟,它甚至不再是一个有用的跳跃点。非常感谢任何帮助。

    var workLinks = $("td > a").length,
            newLink = false,
        i = -1;
    
    function reloadPage() {
      setTimeout(function() {
        location.reload();
      }, 10000);
    }
    
    console.log(workLinks);
    
    if (workLinks === 0) {
    
      reloadPage();
    
    } else if (workLinks > 0) {
    
      while (newLink === false && i < links) {
    
        i++;
        var links = $("td > a").eq(i).text();
    
        if (links.indexOf('phone') < -1) {
          alert('New link');
          newLink = true;
          break;
        } else {
          reloadPage();
        }
      }  
    }
    

1 个答案:

答案 0 :(得分:0)

好吧,Deryck指出了一个错误,然后我发现了一些错误。我有一些错误命名的变量。并再试一次for循环。这次它奏效了。

Here's the working jsfiddle.

这是编辑过的代码:

var workLinks = $("td > a").length;

function reloadPage() {
  setTimeout(function() {
    location.reload();
  }, 10000);
}

console.log(workLinks);

if (workLinks === 0) {

  reloadPage();

} else if (workLinks > 0) {

  var links = $('td > a').length;

  for (i = 0; i < links; i++) {

        var links = $("td > a").eq(i).text();

    if (links.indexOf('phone') < 0) {
      alert('New link');
      break;
    } else {
      reloadPage();
    }
  }  
}