J'ai construit une fonction prototype pour Arrays et elle ne me permet pas de l'utiliser avec un tableau de document.forms [0] .elements. Voici un script simplifié qui montre ce problèmeLa fonction Array.prototype ne fonctionne pas pour document.forms [0] .elements
<html>
<body>
<form id="frm1" action="form_action.asp">
First name: <input type="text" name="fname" value="Donald" /><br />
Last name: <input type="text" name="lname" value="Duck" /><br />
<input type="submit" value="Submit" />
</form>
<p>Return the value of each element in the form:</p>
<script type="text/javascript">
Array.prototype.returnFirst = function(){
return this[0];
}
alert([1,2,3].returnFirst()); //Why does this work?
alert(document.forms[0].elements.returnFirst().id); //but this one doesn't?
</script>
</body>
</html>
Vous verrez ce que la fonction prototype returnFirst() fonctionne pour mon tableau [1,2,3] mais pas pour mon tableau d'éléments? Pourquoi est-ce, c'est toujours un tableau?
Ok, merci. Cela l'éclaircit. Je viens de juste le transformer en un tableau comme suit (cela semble fonctionner, mais je ne suis pas sûr si cela est conseillé) var elems = document.forms [0] .elements; //alert(elems.returnFirst().name); var newArr = new Array(); var i = elems.length; while (i -) { newArr.push (elems [i]); } newArr.reverse(); alerte (newArr.returnFirst(). Nom); –
@Emdiesse: Voir mes modifications. – SLaks