循环生成唯一 ID JavaScript
looping to generate unique id javascript
我想在我的javascript中获取唯一的id,所以我做了一个循环并将其放在id的名称之后。这是我的HTML代码:
$(document).ready(function() {
$('input[type="checkbox"]').on('click', function() {
if ($(this).is(":checked")) {
var a;
for (a = 1; a < 300; a++)
// if checked add value
$("#abc" + a).val($('#xyz' + a).attr('value'));
} else {
// if unchecked remove value
$("#abc" + a).val("");
};
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="checkbox" name="check1" id="check1" />
<input type="text" id="xyz1" name="xyz1" value="3" />
<input type="text" id="abc1" name="abc1" />
<input type="checkbox" name="check2" id="check2" />
<input type="text" id="xyz2" name="xyz2" value="5" />
<input type="text" id="abc2" name="abc2" />
这是我的javascript代码:
我在 id 名称后添加"a",以便生成带有文本的相同 id。但它仍然不能很好地工作..有人可以帮助我吗?我真的很感谢任何帮助:-)
你的代码是正确的,先生:-)
http://codepen.io/zer00ne/pen/dGKvBL/
您需要将其添加到头部:
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
我认为这应该可以解决问题:
$(document).ready(function () {
$('input[type="checkbox"]').on('click', function() {
for(var a = 1; a < 300; a++){
if($(this).is(":checked")){
// if checked add value
$("#abc"+a).val($('#xyz'+a).attr('value'));
}else{
// if unchecked remove value
$("#abc"+a).val("");
}
}
});
});
更新:
考虑到问题中更新的代码,如果你有一个常见的模式,如复选框和 2 个重复的字段,就像问题中给出的那样,我建议你使用一个类,而不是每次都生成唯一的 ID。
<input class="chk" type="checkbox" name="check1" id="check1" />
<input class="xyzs" type="text" id="xyz1" name="xyz1" value="3"/>
<input class="abcs" type="text" id="abc1" name="abc1" />
<input class="chk" type="checkbox" name="check2" id="check2" />
<input class="xyzs" type="text" id="xyz2" name="xyz2" value="5"/>
<input class="abcs" type="text" id="abc2" name="abc2" />
现在jquery将是这样的:
$("input[type='checkbox']").on('click',function(){
$(".chk").each(function(i,ch){
var abc = $(".abcs");
var xyz = $(".xyzs");
if($(this).is(":checked")){
$(abc[i]).val($(xyz[i]).val());
}else{
$(abc[i]).val(" ");
}
});
});
希望对你有帮助
根据我的理解,以下代码会导致问题
if ($(this).is(":checked")) {
var a;
for (a = 1; a < 300; a++)
// if checked add value
$("#abc" + a).val($('#xyz' + a).attr('value'));
} else {
// if unchecked remove value
$("#abc" + a).val("");
如果您注意到,如果未选中$(this).is(":checked")
,则a
未定义,因此它不是设置值。此外,要设置的条件应该在循环内部而不是在循环外部
$(document).ready(function() {
$('input[type="checkbox"]').on('click', function() {
for (a = 1; a < 300; a++) {
if ($(this).is(":checked")) {
var a;
// if checked add value
$("#abc" + a).val($('#xyz' + a).attr('value'));
} else {
// if unchecked remove value
$("#abc" + a).val("");
};
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="checkbox" name="check1" id="check1" />
<input type="text" id="xyz1" name="xyz1" value="3" />
<input type="text" id="abc1" name="abc1" />
<input type="checkbox" name="check2" id="check2" />
<input type="text" id="xyz2" name="xyz2" value="5" />
<input type="text" id="abc2" name="abc2" />
您可以尝试这样的事情:
您可以使用id
和分配值进行搜索,而不是用于300
迭代的循环。您可以使用$([attribute^=value])
获取具有相似id
或name
的元素
$(document).ready(function() {
$('input[type="checkbox"]').on('click', function() {
var val = $(this).is(":checked") ? $(this).parent().find("[id^=xyz]").val() : "";
$(this).parent().find("[id^=abc]").val(val);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div>
<input type="checkbox" name="check1" id="check1" />
<input type="text" id="xyz1" name="xyz1" value="3" />
<input type="text" id="abc1" name="abc1" />
</div>
<div>
<input type="checkbox" name="check2" id="check2" />
<input type="text" id="xyz2" name="xyz2" value="5" />
<input type="text" id="abc2" name="abc2" />
</div>
相关文章:
- 通过ID JavaScript显示随机背景图像
- 如何为动态创建的元素分配唯一的id-Javascript
- 如何在主页的弹出窗口中从向导中的用户控制中获取ControlToValidate ID-javascript asp.n
- 如何使用innerHTML更改图像大小来给它一个id Javascript
- 为类中的所有元素提供单独的 Id Javascript
- 设置元素 id = javascript 函数
- 在 id javascript 上验证 submitHandler
- 循环生成唯一 ID JavaScript
- 我需要使用他们的Facebook id javascript将Facebook照片流放入我的应用程序中
- 在.id-javascript中选择.class
- parsing a url for the id - Javascript
- 使用数字id javascript处理html输入元素
- 缺少:在属性id-javascript之后
- 根据数组中对象的数量改变id (javascript/jquery)
- 在Id javascript中选择一个类
- 替换youtube嵌入iframe视频ID - Javascript
- 通过id javascript填充文本字段
- 无法引用图像id javascript
- 点击返回按钮id-JavaScript
- 检查输入的数字是否正确 按ID - JavaScript