在具有多个id的目标页面上,脚本只作用于第一个id

On a target page with multiple id's, script is acting only on the first one

本文关键字:id 脚本 第一个 作用于 目标      更新时间:2023-09-26

我正在使用Greasemonkey填充文本框。它正在工作,但是该页有多个具有相同id的<input>,并且GM只填充第一个。

页面的HTML(重复3次):

<input type="text" id="se" value="" class="form">


我的GM代码:

document.getElementById("se").value = "na";


我怎么设置第二个或第三个<input>呢?

是的,HTML格式不正确的页面是一种痛苦。幸运的是,querySelectorAll()通常像人们希望的那样在这样的页面上工作。(唉,库,甚至jQuery,通常不能很好地处理格式错误的页面。)

在这种情况下,下面的代码应该为您工作:
var badInputs = document.querySelectorAll ("#se");
for (var J = badInputs.length - 1;  J >= 0;  --J) {
    var tInput      = badInputs[J];
    tInput.value    = "na";
}


您可以在jsFiddle中看到实际的代码。

您可以在页面上迭代input元素,寻找特定的id值:

var elements = document.getElementsByTagName('input');
for(var i = 0; i < elements.length; i++)
{
    if(elements[i].id === "se")
    {
        elements[i].value = "na";
    }
}

小提琴