通过书签中的javascript更改输入值

时间:2017-01-09 20:59:47

标签: javascript input bookmarks

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

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

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

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

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

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

  

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

请看下面的工作片段

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>;

答案 2 :(得分:0)

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

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)()