Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery值拾取_Javascript_Jquery - Fatal编程技术网

Javascript jQuery值拾取

Javascript jQuery值拾取,javascript,jquery,Javascript,Jquery,这是代码: <input type="text" id="name" /> <script> var name = $("#name").val(); </script> 我得到空字符串使用: <input type="text" id="name" /> <script> $(document).on('keyup', '#name', function(){ name = $(this).val()

这是代码:

<input type="text" id="name" />
<script>
    var name = $("#name").val();
</script>
我得到空字符串

使用:

<input type="text" id="name" />
<script>
    $(document).on('keyup', '#name', function(){
        name = $(this).val();
    });
</script>

$(文档).on('keyup','#name',function(){
name=$(this.val();
});

这将仅在键入值后将
#name
的值分配给变量
name

这将不起作用,因为Chrome控制台不知道您的JavaScript值是什么,它们的作用域不是全局的。您需要在脚本标记中写入console.log(name),或在console(和赋值)中声明name变量并记录该变量。

您需要在键入后调用
$(“#name”).val(),否则,当页面加载时,它将被加载,您将得到一个空字符串,因为此时输入为空。

在解释脚本时,会立即分配
name
变量,如果您在文本框中键入不同的值,该变量不会更改。此处的变量“name”仍然不是全局变量,Chrome控制台仍然无法访问它。作为最终解决方案,您的解决方案是正确的(我猜),但不是他解释的问题。因为他在这里不使用
var name
,所以该变量实际上是全局变量,可以从任何地方访问,包括控制台。@Chris-Susanoh13是正确的,我故意省略了
var
,这样它就可以在全球范围内使用。-在Chrome/Firebug/console.jsFiddle沙盒中键入console.log(name)<代码>名称仍然是全局的,但您不能直接从浏览器控制台访问它。:)事实上,这不是问题所在。由于
name
不是在本地范围中声明的,因此它实际上是全局的。但是,从文本字段中拉出
name
的脚本将在页面加载后立即运行,并且在用户有时间在文本字段中键入任何内容之前很久,这意味着它将是空的。明白了,这个答案是我的错。
<input type="text" id="name" />
<script>
    $(document).on('keyup', '#name', function(){
        name = $(this).val();
    });
</script>