2017-01-09 103 views
0

我需要制作一个书签,该书签会执行一个用于更改输入值的JavaScript。在书签中通过javascript更改输入值

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

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

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

但他们没有工作。任何人都可以帮忙吗?

+0

'E [0]。价值= “新值”;'或'd.querySelector( '测试' ).value =“新值”;' – Igor

回答

0

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";
<input type="text" placeholder=" - " value=" - " class="test"/>

+0

太棒了!谢谢!这个完美的工作! – jl001

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

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