2017-01-09 2 views
0

Je dois créer un signet qui exécute un javascript qui modifie une valeur d'entrée.Modifier la valeur d'entrée par javascript dans le signet

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

J'ai essayé plusieurs scripts différents dont celui-ci:

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

Mais aucun d'entre eux fonctionne. Quelqu'un peut-il aider s'il vous plaît?

+0

'e [0] .value = "nouvelle valeur", ou' 'd.querySelector ('test'.) .value = "nouvelle valeur"; ' – Igor

Répondre

0

Document.getElementsByClassName() renvoie un objet de type tableau de tous les éléments enfants de cette classe. Ainsi, vous devez sélectionner le premier index du tableau. Cela fonctionnerait:

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

Great! Merci! Celui-ci a fonctionné parfaitement! – jl001

0

Document.getElementsByClassName() retourne un objet semblable à un tableau de tous les éléments enfants qui ont tous les noms de classe donnée

voir ci-dessous un extrait de travail

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

Légèrement plus polyvalent. Entrez un sélecteur et un texte:

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

passé à travers un créateur de bookmarklet:

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