gpt4 book ai didi

javascript - jQuery:在两个引号之间写入变量

转载 作者:行者123 更新时间:2023-11-28 12:44:40 25 4
gpt4 key购买 nike

我想创建一个输入循环,以便变量 img 获得数字 1 到 5,如下所示:

img1, img2 ... img5.

img后面怎么写$i

for ($i=1;$i<=5;$i++) {

function(data) { $('input[name="img1"]').val(data) });

}

注意: img 位于两个引号之间。

编辑:

user = $('input[name="name"]').val();
for (var i = 1; i <= 5; i++) {
$.post("test.php", { name: user, num: i },
function(data) {
$('input[name="img'+i+'"]').val(data)
});
}

最佳答案

您在循环中声明的函数看起来很奇怪。那不是有效的 JavaScript。您可以尝试以下方法:

for (var i = 1; i <= 5; i++) {
$('input[name="img' + i + '"]').val(data);
}

或者如果我们假设您已经定义了某个函数:

var foo = function(data, index) {
$('input[name="img' + index + '"]').val(data);
}

你可以像这样调用它:

for (var i = 1; i <= 5; i++) {
foo('some data ' + i, i);
}
<小时/>

更新:

评论部分提供了一个有趣的例子:

for (var i = 1; i <= 5; i++) { 
$.post(
"test.php",
{ name: username, num: i },
function(data) {
$('input[name="img'+i+'"]').val(data);
}
);
}

这不起作用,因为 i 变量可能在循环和 AJAX 成功回调之间更改了值。要解决此问题,您可以尝试以下操作:

for (var i = 1; i <= 5; i++) { 
(function(index) {
$.post(
"test.php",
{ name: username, num: index },
function(data) {
$('input[name="img'+index+'"]').val(data);
}
);
})(i);
}

或使用$.ajax()方法允许您将上下文传递给 success 回调:

for (var i = 1; i <= 5; i++) { 
$.ajax({
url: 'test.php',
type: 'POST',
data: { name: username, num: i },
context: i, // here we are defining the context
success: function(result) {
// since we have used the context parameter, this variable
// here will point to the value that i had when we initiated
// the AJAX request
$('input[name="img' + this + '"]').val(result);
}
});
}

关于javascript - jQuery:在两个引号之间写入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com