【问题标题】:How to set the value for all elements using a variable in jQuery?如何使用 jQuery 中的变量为所有元素设置值?
【发布时间】:2016-07-14 20:26:02
【问题描述】:

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

$('#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() 
}

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

【问题讨论】:

  • 你在哪里声明 foo?
  • 尝试使用$(foo).val('...'),可以解决问题吗?
  • @automatix 啊,我以为你总是必须将变量包装在$() 中才能使用它。学到了新东西!
  • 这对我有用jsfiddle.net/697n5ue7/1
  • 如果你可以制作一个 jsfiddle,那么也许我们可以通过查看你的 HTML 和 JS 检测到一些东西

标签: javascript jquery scope input-field


【解决方案1】:

问题是,这些字段是由 JavaScript 生成的——文档被加载之后。只有输入项是静态的,这就是它适用的原因。

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

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

【讨论】:

    猜你喜欢
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2016-01-20
    • 1970-01-01
    • 2016-11-18
    相关资源
    最近更新 更多