如何在警告框中的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)
}
}
答案 0 :(得分:17)
有几件事:
new
用作变量名称,它是保留字。input
元素上,您可以直接使用value
属性,而不必通过getAttribute
。该属性被“反映”为属性。name
相同。所以:
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)
如果我正确理解您的问题和代码,那么在分享我的代码/解决方案版本之前,我想首先提及三件事。首先,对于name
和value
,您可能不应该使用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');