alerte une valeur de variable

Comment afficher la valeur d'une variable en javascript dans une zone d'alerte?

Par exemple, j'ai une variable x=100 et alert(x) ne fonctionne pas.

Le script utilisé dans Grease monkey est ici

var inputs = document.getElementsByTagName('input');

var new;
for (i=0; i<inputs.length; i++) {
  if (inputs[i].getAttribute("name") == "ans") {   
new=inputs[i].getAttribute("value"));

alert(new)

  }
}
23
demandé sur Kerry Jones 2010-06-06 10:04:47

6 réponses

Quelques choses:

  1. Vous ne pouvez pas utiliser new comme nom de variable, c'est un mot réservé.
  2. sur les éléments input, Vous pouvez simplement utiliser la propriété value directement, vous n'avez pas à passer par getAttribute. L'attribut est "reflété" en tant que propriété.
  3. Même pour name.

Donc:

var inputs, input, newValue, i;

inputs = document.getElementsByTagName('input');
for (i=0; i<inputs.length; i++) {
    input = inputs[i];
    if (input.name == "ans") {   
        newValue = input.value;
        alert(newValue);
    }
}
16
répondu T.J. Crowder 2010-06-06 06:32:51

Notez, bien que les réponses ci-dessus soient correctes, si vous le souhaitez, vous pouvez faire quelque chose comme:

alert("The variable named x1 has value:  " + x1);
8
répondu JosephDoggie 2016-01-07 20:42:43

Si vous utilisez greasemonkey, il est possible que la page ne soit pas encore prête pour le javascript. Vous devrez peut-être utiliser window.onReady.

var inputs;

function doThisWhenReady() {
    inputs = document.getElementsByTagName('input');

    //Other code here...
}

window.onReady = doThisWhenReady;
2
répondu Coronus 2010-06-06 06:44:38
var input_val=document.getElementById('my_variable');for (i=0; i<input_val.length; i++) {
xx = input_val[i];``
if (xx.name == "ans") {   
    new = xx.value;
    alert(new);    }}
1
répondu Laxmi Priyam Dubey 2016-07-11 09:03:40

Afficher la boîte d'alerte avec utiliser la variable avec le message

<script>
$(document).ready(function() {
var total = 30 ;
alert("your total is :"+ total +"rs");
});
</script>
1
répondu pradip kor 2017-06-30 03:32:26

Si je comprends correctement 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 elles sont elles-mêmes des propriétés de (la variable nommée) inputs (à un indice donné de i). Deuxièmement, la variable que vous essayez d'alerter fait partie d'une poignée de termes sélectionnés en JavaScript qui sont désignés comme "mots-clés réservés" ou simplement " réservés mot". Comme vous pouvez le voir dans/sur cette liste (sur le lien), new est clairement un mot réservé dans JS et ne doit jamais être utilisé comme nom de variable. Pour plus d'informations, il suffit de google "mots réservés en JavaScript". Troisièmement et enfin, dans votre déclaration d'alerte elle-même, vous avez négligé d'inclure un point-virgule. Cela et cela seul peut parfois être suffisant pour que votre code ne fonctionne pas comme prévu. [Mis à part: je ne dis pas cela comme conseil mais plus comme observation: JavaScript pardonnera presque toujours et permettra d'avoir trop de points-virgules et / ou inutiles, mais généralement JavaScript est également également sinon plus impitoyable si / lorsqu'il manque (l'un des) points-virgules nécessaires. 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/incluant un supplément, mais cela nuira en ignorant un obligatoire. Les règles générales sont toutes les déclarations et les affectations se terminent par un point-virgule (comme les affectations de variables, les alertes, la console.instructions de journal, etc.) mais la plupart / toutes les expressions ne le font pas (comme pour les boucles, tandis que les boucles, les expressions de fonction disent simplement. Mais je m'égare..

    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 instruction conditionnelle, et dans ce cas, cela n'a pas d'importance puisque vous comparez des chaînes, mais en général, je crois que l'opérateur Triple affectation est le chemin à parcourir et est plus précis car cela vérifierait si le les valeurs sont équivalentes sans CONVERSION de TYPE, ce qui peut être très important pour d'autres instances de comparaisons, il est donc important de le souligner. Par exemple, 1=="1" et 0==false sont tous les deux true (quand généralement vous voudriez que ceux-ci retournent false puisque la valeur à gauche n'était pas la même que la valeur à droite, sans conversion de type) mais 1==="1" et 0===false sont tous deux faux comme vous vous en doutez car l'opérateur triple ne repose pas sur la conversion de type lors des comparaisons. Gardez cela à l'esprit pour avenir.

1
répondu Sean Tank Garvey 2017-11-10 00:14:48