【问题标题】:On a target page with multiple id's, script is acting only on the first one在具有多个 id 的目标页面上,脚本仅作用于第一个
【发布时间】:2014-05-19 07:14:21
【问题描述】:

我正在使用 Greasemonkey 填写一个文本框。可以了,但是页面有多个<input> id相同,GM只填第一个。

页面的 HTML(重复 3 次):

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


我的 GM 代码:

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


我怎样才能设置第二个或第三个&lt;input&gt;呢?

【问题讨论】:

    标签: javascript html greasemonkey malformed


    【解决方案1】:

    是的,HTML 格式错误的页面是一种痛苦。幸运的是,querySelectorAll() 通常可以在此类页面上正常工作。 (唉,库,甚至 jQuery,通常也不处理格式错误的页面。)

    在这种情况下,以下代码应该适合您:

    var badInputs = document.querySelectorAll ("#se");
    
    for (var J = badInputs.length - 1;  J >= 0;  --J) {
        var tInput      = badInputs[J];
        tInput.value    = "na";
    }
    


    你可以see the code in action at jsFiddle

    【讨论】:

      【解决方案2】:

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

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

      fiddle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-06
        • 1970-01-01
        • 2018-04-14
        • 1970-01-01
        • 2020-07-18
        • 1970-01-01
        • 1970-01-01
        • 2015-01-28
        相关资源
        最近更新 更多