【问题标题】:Change input value by javascript in bookmark通过书签中的javascript更改输入值
【发布时间】:2017-01-09 20:59:47
【问题描述】:

我需要制作一个书签来执行更改输入值的 javascript。

<input type="text" placeholder=" - " value=" - " class="test"/>

我尝试了几个不同的脚本,包括这个:

javascript:(function(){var d=document,e=d.getElementsByClassName("test");e.value="new value";})();

但它们都不起作用。有人可以帮忙吗?

【问题讨论】:

  • e[0].value="new value";d.querySelector('.test').value="new value";

标签: javascript input bookmarks


【解决方案1】:

Document.getElementsByClassName() 返回一个具有该类的所有子元素的类数组对象。因此,您需要选择数组的第一个索引。这会起作用:

e=d.getElementsByClassName("test")[0]; // select first element, now e is a DOM element

var d = document,
    e = d.getElementsByClassName("test")[0];
e.value="new value";
&lt;input type="text" placeholder=" - " value=" - " class="test"/&gt;

【讨论】:

    【解决方案2】:

    Document.getElementsByClassName() 返回一个类似数组的对象 具有所有给定类名的所有子元素

    请参阅下面的工作 sn-p

    function myBookmark(){
      var d=document,elements=d.getElementsByClassName("test");
      for (var i=0;i<elements.length;i++){
      elements[i].value="new value";
      }
    }
    <input type="text" placeholder=" - " value=" - " class="test"/>
    <input type="text" placeholder=" - " value=" - " class="test"/>
    <input type="text" placeholder=" - " value=" - " class="test"/>
    
    <a href="javascript:myBookmark()">Execute Bookmark</a>;

    【讨论】:

      【解决方案3】:

      稍微多才多艺。输入一个选择器和一些文本:

      let p=prompt,
          sel=p('enter selector'),
          v=p('new value');
      Array.from(document.querySelectorAll(sel)).forEach(e=>e.value=v)
      

      通过小书签创建者传递:

      javascript:(function()%7Blet%20p%3Dprompt%2Csel%3Dp('enter%20selector')%2Cv%3Dp('new%20value')%3BArray.from(document.querySelectorAll(sel)).forEach(e%3D%3Ee.value%3Dv)%7D)()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-03
        • 2023-03-03
        • 1970-01-01
        • 2020-07-10
        • 2016-06-25
        • 2020-09-11
        • 1970-01-01
        相关资源
        最近更新 更多