与.click()一起使用的waitForKeyElements

时间:2015-09-18 15:28:39

标签: javascript jquery html css

我正在使用这个在网站上运行的脚本,但我想将其修改为另一种用途。是否可以使用beforeEach函数在页面上查找文本(而不是链接中的文本)?

以下是<a href="http://somelink.com"><div id ="rectangle"><div id="iconx"></div><p class="rec-text"> LINK TEXT </p></div></a>

waitForKeyElements

一旦该文字“你已经失控了”。出现,我希望点击功能点击包含与div中的文字不同的文字的链接。我无法使用此功能,因为此文本仅在轮流时出现。我想触发包含“再次开始”文本的链接。这个链接总是存在,所以我试图解决它,或者我只是使用工作脚本。

以下是我要修改的工作脚本:

<div id="action_pane" style="text-align: center;">You have run out of turns

这是我的版本不起作用:

$action_pane

2 个答案:

答案 0 :(得分:1)

使用DOM元素的innerHTML不是存储系统状态的最佳方法。如果我是你,我会完全采取另一种方法。

在你的游戏中,当你不在转弯时,你想要显示文字“你已经用完了”并重新开始。所以直接(而不是间接)明确表达。

function takeTurn() {
  turnsLeft -= 1;
  if (turnsLeft <= 0) {
    showGameOverMessage();
    startAgain();
  }
}

这将使您的代码更容易理解。

startAgain可以在用户单击时触发,也可以从应用程序逻辑中调用。使操作成为一等公民,而不是用户互动或副作用。

答案 1 :(得分:0)

您的代码中包含以下行:

waitForKeyElements (
    "a:contains('You have run out of turns.')",
    clickit
);

但是之前你说过你正在观看的元素是:

<div id="action_pane" style="text-align: center;">You have run out of turns

这是div,而不是a元素。因此,您的选择器应更改为div:contains('You have run out of turns')