我正确使用indexof吗?

时间:2015-04-30 17:01:11

标签: javascript indexof

我正在尝试使用indexof告诉我页面上是否出现字符串。

下面的函数应循环遍历表单中的所有复选框(name =“comment”),检查文档其余部分中每个复选框的值(仅因为我无法弄清楚如何只搜索一个范围)。如果发现字符串值存在于页面的其他位置,则该复选框将更改css样式。

function loop() {

var comment=document.forms[0].comment;
var ii;

for (ii=0;ii<comment.length;ii++)  {
    str=comment[ii].value;
    id = comment[ii].id;

if(document.body.innerHTML.toString().indexOf(str) !=-1)
{
  document.getElementById(id).style.visibility = "hidden";
        }
    }
}

结果是所有复选框都变为“隐藏”。我认为问题是复选框在HTML中找到自己的值,但是当我搜索废话时也是如此。

我使用indexof不正确吗?任何人都可以指出如何以及在哪里?我不想使用window.find。

详细说明: 复选框1的值是“A IS FOR APPLE”。检查页面上的字符串“A IS FOR APPLE”。如果找到,请隐藏复选框1。转到复选框2并重复。

1 个答案:

答案 0 :(得分:0)

如果我明白你想做什么,我认为更好的方法应该是这样的:

function loop() {

  var inputs = document.getElementsByTagName("input");
  var span = document.getElementsById("txtHint");

  for(var i = 0; i < inputs.length; i++) {
    //Let's check only the checkbox with the name comment
    if(inputs[i].name == "comment" && inputs[i].value == span.innerText) {
          inputs[i].style.visibility = "hidden";
    }  
  }
相关问题