警告变量值

时间:2010-06-06 06:04:47

标签: javascript greasemonkey

如何在警告框中的javascript中显示变量的值?

例如,我有一个变量x = 100而alert(x)不起作用。

油脂猴子中使用的脚本就在这里

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)

  }
}

7 个答案:

答案 0 :(得分:17)

有几件事:

  1. 您不能将new用作变量名称,它是保留字。
  2. input元素上,您可以直接使用value属性,而不必通过getAttribute。该属性被“反映”为属性。
  3. name相同。
  4. 所以:

    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);
        }
    }
    

答案 1 :(得分:13)

请注意,虽然上述答案是正确的,但如果您愿意,可以执行以下操作:

alert("The variable named x1 has value:  " + x1);

答案 2 :(得分:2)

如果你正在使用greasemonkey,那么页面还没有为javascript做好准备。您可能需要使用window.onReady。

var inputs;

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

    //Other code here...
}

window.onReady = doThisWhenReady;

答案 3 :(得分:1)

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);    }}

答案 4 :(得分:1)

显示包含消息

的使用变量的警告框
<script>
$(document).ready(function() {
var total = 30 ;
alert("your total is :"+ total +"rs");
});
</script>

答案 5 :(得分:1)

如果我正确理解您的问题和代码,那么在分享我的代码/解决方案版本之前,我想首先提及三件事。首先,对于namevalue,您可能不应该使用getAttribute()方法,因为它们本身就是(名为inputs的变量的属性(在给定的i索引。其次,您尝试提醒的变量是JavaScript中少数几个被指定为“保留关键字”或简称为“保留字”的术语之一。正如您在此列表中/上看到的那样(在链接上),new显然是JS中的保留字,不应该用作变量名。有关更多信息,请使用JavaScript中的谷歌保留字。第三,最后,在你的警告声明中,你忽略了包含分号。仅此而且仅此一项就足以让您的代码无法按预期运行。 [旁白:我不是说这是建议,而是更多地作为观察:JavaScript几乎总是会原谅并且允许有太多和/或不必要的分号,但一般情况下,如果不是更多的话,如果/当失踪时,JavaScript也同样是无情的(任何一个)必要的,必需的分号。因此,最佳做法当然是仅在所有要求的点添加分号,并在所有其他情况下排除它们。但实际上,如果有疑问,它可能不会通过添加/包含额外的一个来伤害事物,但会因忽略强制性的一个而受到伤害。一般规则是所有声明和赋值以分号结尾(例如变量赋值,警报,console.log语句等)但大多数/所有表达式都没有(例如for循环,while循环,函数表达式Just Saying。)但是我离题了..

    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:你在条件语句中使用了一个双赋值运算符,在这种情况下它并不重要,因为你正在比较字符串,但一般来说我认为三重赋值运算符是要走的路,并且更准确将检查值是否为EQUIVALENT WITHOUT TYPE CONVERSION,这对于其他比较实例非常重要,因此指出是很重要的。例如,1 ==“1”和0 == false都是正确的(通常你希望那些返回false,因为左边的值与右边的值不同,没有类型转换)但是1 ===“1”和0 === false都是假的,因为三重运算符在进行比较时不依赖于类型转换。记住未来的想法。

答案 6 :(得分:1)

在以下示例的帮助下,查看是否可以使用文字和'$'符号。

    function doHomework(subject) {
    
      alert(\`Starting my ${subject} homework.\`);
    
    }

doHomework('maths');