2016-07-14 48 views
-1

设置一类foo的所有输入字段的值很简单:如何在jQuery中使用变量设置所有元素的值?

$('#long .path .to .foo').val('...'); 

但现在我需要处理在多个地方foo领域,所以我救它作为对象要使用这样的:

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的对象class的所有元素的value保存到一个变量(当前范围之外)?

+0

你在哪里*申报*'foo'? – Madbreaks

+0

尝试使用'$(foo).val('...')',是否解决了它? – sbonkosky

+0

@Madbreaks如果你的意思是声明,那么当缺少声明时,变量是全局的,当定义像'foo = $('#long .path .to .foo');' – bugwheels94

回答

0

问题是,该字段是由JavaScript生成的 - 之后文档已被加载。只有输入项是静态的,这就是为什么它适用于它。

的解决方案是将foo声明移到回调和使用的功能(S),而不是变量,使相关的输入项列表获取每一次,当它应该被操纵:

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