Jquery值整数与id通过循环
Jquery value integer with id through loop
我有一个简单的for循环:
for (var i = 0; i < 10; i++) {
$('#input' + i).on('blur', function() {
var values = $('#input' + i).val();
console.log(values);
});
}
我想要得到#input的值,如果我在输入中写了一些东西,我只会在控制台中得到未定义的消息。
但是为什么如果我运行下面的代码,我得到了正确的结果?
for (var i = 0; i < 10; i++) {
$('#input' + i).on('blur', function() {
var values = $('#input0').val();
console.log(values);
});
}
如何在循环中将这些值放到另一个id上?
问题似乎是缺少元素。你可以删除for()
循环,jQuery为你做的一切:
$('[id^="input"').on('blur', function() {
var values = $(this).val();
console.log(values);
});
使用此模式,您可以呈现所需的所有输入,并且jQuery将遍历所有输入,而无需为不存在的元素创建侦听器。
如果你真的要使用for
循环尝试分离逻辑,你必须使用事件委托.on()
和使用jQuery对象$(this)
内的事件,因为这个对象包含当前输入模糊:
for(var i = 0; i< 6; i++) {
$('body').on('blur', '#input'+i, getValue);
}
function getValue() {
var values = $(this).val();
console.log(values);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='input0' value='0' />
<input id='input1' value='1' />
<input id='input2' value='2' />
<input id='input3' value='3' />
<input id='input4' value='4' />
<input id='input5' value='5' />
但是如果您可以避免循环并为所有input
s添加通用类或使用start-with
选择器^=
:
$("body").on('blur', '[id^='input']', function() {
var values = $(this).val();
console.log(values);
});
$('body').on('blur', '.input', function () {
var values = $(this).val();
console.log(values);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='input' id='input0' value='0' />
<input class='input' id='input1' value='1' />
<input class='input' id='input2' value='2' />
<input class='input' id='input3' value='3' />
<input class='input' id='input4' value='4' />
<input class='input' id='input5' value='5' />
blur
事件将在将来某个时候发生,届时您将从特定输入模糊。
此时,i
的值将被改变,因为循环已经完成执行,i
的值是最近的。
您需要创建一个闭包并将此i
绑定到blur
事件
for (var i = 0; i < 10; i++) {
(function(i){
$('#input' + i).on('blur', function() {
var values = $('#input' + i).val();
console.log(values);
});
}(i))
}
JSFIDDLE
相关文章:
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 如何循环通过2个对象数组并通过匹配id进行合并
- 正在为循环创建唯一id
- 在qualtrics上使用javascript:循环块中的问题id
- 我们可以设置属性'id'到不同的'按钮'通过使用javascript或jquery的循环
- 当传递innerHTML和(this.id)时,循环不会终止
- 我想使用Javascript中的循环在HTML中的特定id中显示数组中的多个对象
- ID转入循环
- 使用 for 循环基于
id 从表中删除行 - 循环浏览页面上所有选中的复选框并将id拉入数组不起作用
- 如何制作id列表's或使用多个id的循环's在Javascript中
- 在标签上重申's id,使用下面的for循环和jquery
- 在javascript循环中创建唯一的Id按钮
- 返回实例'for循环中的id
- 类似系统:循环形成唯一id,得到这些id'使用jQuery/Javascript单独发布
- 正在获取循环中td元素的tr id
- 将递增的类与不同循环中递增的id进行匹配[jQuery/Wordpress]
- Greasemonkey添加一个按钮来循环ID
- 将关联的 ID 添加到 for 循环中的复选框
- Ruby on rails -如何在javascript中选择循环id