Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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_Scope_Input Field - Fatal编程技术网

Javascript 如何在jQuery中使用变量设置所有元素的值?

Javascript 如何在jQuery中使用变量设置所有元素的值?,javascript,jquery,scope,input-field,Javascript,Jquery,Scope,Input Field,为类foo的所有输入字段设置值很容易: $('#long .path .to .foo').val('...'); 但现在我需要在多个位置操作foo字段,因此我将其保存为object,以便像这样使用它: foo = $('#long .path .to .foo'); foo.val('...'); 当我在函数中赋值时,在我使用它的地方,它就起作用了。但当这不起作用时: $(document).ready(function() { foo = $('#long .path .to .

为类
foo
的所有输入字段设置值很容易:

$('#long .path .to .foo').val('...');
但现在我需要在多个位置操作
foo
字段,因此我将其保存为object,以便像这样使用它:

foo = $('#long .path .to .foo');
foo.val('...');
当我在函数中赋值时,在我使用它的地方,它就起作用了。但当这不起作用时:

$(document).ready(function() {
    foo = $('#long .path .to .foo');
    bar();
}
function bar() {
    foo.val('...');
}
这与范围无关,因为这是可行的:

function bar() {
    foo.first().val('...'); // or last() 
}

如何使用保存到变量(当前范围之外)的jQuery对象设置
类的所有元素的

问题是,这些字段是在加载文档后由JavaScript生成的。只有输入项是静态的,这就是它工作的原因

解决方案是将
foo
声明移动到回调中,并在函数中使用is而不是变量,以便在每次需要操作时获取相关的输入项列表:

$(document).ready(function() {
    foo = function() {
        return $('#long .path .to .foo');
    };
    bar();
}
function bar() {
    foo().val('...');
}

你在哪里声明
foo
?试着使用
$(foo).val(“…”)
,这能解决它吗?@automatix啊,在这里我想你总是必须用
$()
包装变量才能使用它。学到了一些新东西!这对我来说很有用,如果你能制作一个JSFIDLE,那么也许我们可以通过查看你的HTML和JS来检测一些东西