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)
}
}
6 réponses
Quelques choses:
- Vous ne pouvez pas utiliser
new
comme nom de variable, c'est un mot réservé. - sur les éléments
input
, Vous pouvez simplement utiliser la propriétévalue
directement, vous n'avez pas à passer pargetAttribute
. L'attribut est "reflété" en tant que propriété. - 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);
}
}
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);
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;
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); }}
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>
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.