我正在尝试使用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并重复。
答案 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";
}
}