Si je comprends bien votre question et votre code, alors je veux d'abord mentionner trois choses avant de partager mon code/version d'une solution. Tout d'abord, pour name
et value
vous ne devriez probablement pas utiliser la méthode getAttribute()
car ils sont, eux-mêmes, propriétés de (la variable nommée) inputs
(à un index donné de i
). Deuxièmement, la variable que vous essayez d'alerter est l'une des quelques termes choisis en JavaScript qui sont désignés comme «mots-clés réservés» ou simplement «mots réservés». Comme vous pouvez le voir dans/sur cette liste (sur le lien), new
est clairement un mot réservé dans JS et ne devrait jamais être utilisé comme nom de variable. Pour plus d'informations, il suffit de google "mots réservés en JavaScript". Troisièmement et finalement, dans votre déclaration d'alerte elle-même, vous avez omis d'inclure un point-virgule. Cela et cela seul peut parfois être suffisant pour que votre code ne fonctionne pas comme prévu. [A part: Je ne dis pas cela comme un conseil mais plutôt comme une observation: JavaScript pardonnera presque toujours et permettra d'avoir trop de points virgules inutiles et/ou inutiles, mais généralement JavaScript est également sinon plus impitoyable si (quand) points-virgules nécessaires et requis. Par conséquent, la meilleure pratique est, bien sûr, d'ajouter les points-virgules uniquement à tous les points requis et de les exclure dans toutes les autres circonstances. Mais en pratique, en cas de doute, cela ne nuira probablement pas aux choses en ajoutant/en ajoutant un supplément, mais cela nuira en ignorant celui qui est obligatoire. Les règles générales sont toutes les déclarations et les assignations se terminent par un point-virgule (comme les affectations de variables, les alertes, les instructions console.log, etc.) mais pas toutes les expressions (comme les boucles, les boucles, les expressions de Je digresse..
function whenWindowIsReady() {
var inputs = document.getElementsByTagName('input');
var lengthOfInputs = inputs.length; // this is for optimization
for (var i = 0; i < lengthOfInputs; i++) {
if (inputs[i].name === "ans") {
var ansIsName = inputs[i].value;
alert(ansIsName);
}
}
}
window.onReady = whenWindowIsReady();
PS: Vous avez utilisé un opérateur double affectation dans votre déclaration conditionnelle, et dans ce cas, il n'a pas d'importance puisque vous comparez des chaînes, mais en général je crois que l'opérateur triple mission est la voie à suivre et plus précis car cela permettrait de vérifier si les valeurs sont EQUIVALENT SANS TYPE CONVERSION, ce qui peut être très important pour d'autres instances de comparaison, il est donc important de le signaler. Par exemple, 1 == "1" et 0 == false sont tous les deux vrais (quand vous voudriez que ceux-ci retournent faux parce que la valeur à gauche n'était pas la même que la valeur à droite, sans conversion de type) mais 1 === "1" et 0 === faux sont faux tous les deux car l'opérateur triple ne compte pas sur la conversion de type lors des comparaisons. Gardez cela à l'esprit pour l'avenir.
montrez-nous ce que vous avez fait, y compris html. –
Votre question manque beaucoup de détails. –
Hors sujet, mais je pense que cela vous aiderait probablement à prendre un bon livre sur Javascript. Je pensais que le * Javascript: The Definitive Guide * de Flanagan était assez bon, mais vraiment, vous avez beaucoup de choix en termes de livres JS à ce stade. :-) –