如果存在xx,请执行yy

时间:2013-12-22 06:11:37

标签: javascript

我是JS的新手。 我正在尝试使用Greasemonkey创建一个脚本来自动填充网页上的表单。

如果页面上存在以下错误代码,我希望我的脚本单击“返回”按钮。

<div>
  <div id="registration_error" class="errBlock" style="color:Red;">
    <ul><li>Address is required.</li></ul>
</div>

我尝试了一些代码(我不知道是否正确,我做出了假设)没有成功,包括;

if(document.getElementById("registration_error).innerText.Contains("Address is required.")
{
 document.getElementsByClassName('btnRegister')[0].click();
}

也尝试了

if(document.getElementsByClassName('errBlock').innerText.Contains("Address is required")

if ("#registration_error").innerText.Contains("Address is required")
等等 根据我的知识,我尝试了很多组合。单击按钮工作正常但无法确定if条件。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您尝试的第一段代码是最接近正确的。

第一部分document.getElementById("registration_error")是正确的(除了你遗漏了你的引号)。

然后,您尝试在此registration_error div中获取HTML代码。正确的方法是.innerHTML。 (.innerText不兼容浏览器(在我的网站上没有工作))

检查HTML是否包含"Address is required"的最后一部分是错误的。检查字符串中是否包含一些文本的正确方法是使用"hello world".indexOf("llo")。如果找到,此函数将返回字符串的位置,如果字符串中未包含文本,则返回-1

因此,您的最终if语句如下所示:

if(document.getElementById("registration_error").innerHTML.indexOf("Address is required.") !== -1){
    document.getElementsByClassName('btnRegister')[0].click();
}

这对你有用。请注意,Javascript 区分大小写,因此请确保您做到了。