javascript - js输出的值与期望不符合,实在搞不懂
迷茫
迷茫 2017-05-19 10:30:26
0
3
624
var number1 = document.getElementById("queue");
height1 = number1.value+("px");

queue是一个输入框,number1.value是它的输入的值(一个数字),但是height1输出的始终是px,没有任何数字。
比如:

console.log(number1.value); //20
console.log(height1);//px

我还试了一种方法

var number1 = document.getElementById("queue");
var number1Value = number1.value;
height1 = number1Value+("px");

这下更加奇怪,

console.log(number1.value);//20
console.log(number1Value);//
console.log(number1.value.constructor == String);//true

证明number1.value是字符串,那字符串加字符串应该可以啊

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
PHPzhong

1.大概你理解的意思

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="input">
</body>
<script>
var val=document.getElementById("input");
var height=val.value+"px";//你这个地方 定义height的时候 val.value并不存在
console.log(height)//px
</script>
</html>

2.正确获取的方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="input" value="20">
</body>
<script>
var val=document.getElementById("input");
var height=val.value+"px";//你这个地方 定义height的时候 val.value已经存在
console.log(height)//20px
</script>
</html>

3.换一种方式 监控输入框中的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="input" onchange="getVal()">
</body>
<script>
var val=document.getElementById("input");
function getVal() {
    var height=val.value+"px";
    console.log(height)//这种只要input值发生改变  这个地方就会有输出  
}

</script>
</html>
曾经蜡笔没有小新

你这是打开页面就执行 函数只执行了一次 当你再次输入值的时候你并没有执行那个方法 而第一次的值是空的!

仅有的幸福

你需要一个事件处理函数,页面刚加载进来的时候,value一定是空的,因为你还没有在input里写值
var height = 0;
var input = document.querySelector('#input');
var btn = document.querySelector('#btn');
btn.addEventListener('click', function(){

var value = input.value;
height = value + 'px';

}, false)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!