每次重新加载后,无法在JavaScript中设置输入值

时间:2016-06-29 12:55:03

标签: javascript forms input

这是我在Chrome浏览器控制台中使用的代码:

document.querySelector('input').value = 'Some URL';

代码运行时没有任何错误。但是,输入的值不会更新。输入显示相同的旧值。我可以使用

轻松点击按钮
document.querySelector('button[value="true"]').click();

那么,为什么这些值没有更新?

更新:我正在使用此代码here。在评论代码有效之前,请在我链接的页面上尝试。

更新2:我也无法使用for循环一次调试多个URL。这是我的代码:

for(var i=0;i<50;i++){
  setInterval(function () {
    var url = 'http://myurl/goes/here/?n=' + i;
    console.log(url);
    document.querySelector('input.inputtext').value = url;
    document.querySelector('button[value="true"]').click();
  }, 10000);
}

但是,它将输入值设置为http://myurl/goes/here/?n=49,然后仅使用该值重新加载页面一次。我想要的是在每次更新网址后重新加载页面,以便可以立即抓取所有网址。

2 个答案:

答案 0 :(得分:0)

根据您提供的代码,看起来您的目标是错误的元素(即顶部的搜索框而不是主<input />元素),如下面代码的结果所示: / p>

enter image description here

您可以通过在querySelector()函数中使您的选择器更具体来定位相应的元素来解决此问题:

document.querySelector('input.inputtext').value = 'Some URL';

答案 1 :(得分:0)

看起来可能会有另一个INPUT元素存在于您希望更新的元素之前。

document#querySelector;

  

返回文档中的第一个元素(使用文档节点的深度优先预先遍历遍历|文档标记中的第一个元素,并按子节点数量的顺序迭代顺序节点)与指定的选择器组匹配

因此,尝试通过给输入元素指定唯一的id或类来更具体。