u013400939 于 2015.07.14 17:14 提问

jquery如何根据文本框中输入的数，实现数组循环

`````` 最多<input type="text" name="maxnum" style="width: 4%"/>项
``````

`````` <script>
function del(t){
\$(t).parent('div').remove();
}
var lastInput = \$('#contain input:last');
var phName = lastInput.attr('placeholder');
var maxNum = \$("#maxnum").val();

phName = phName.replace("选项","");
if(phName=='1'){
phName='2'
}else if(phName=='2'){
phName='3'
}else if(phName=='3'){
phName='4'
}else if(phName=='4'){              **_  //这部分如何用数组循环实现_**
phName='5'
}else if(phName=='5'){
phName='6'
}
\$('<div class="inputs"><input input type="text" id="commentx" name="comment" maxlength="30" style="width: 80% "  placeholder="选项'+phName+'" /><span onclick=del(this)>删除</span></div>').insertAfter(lastInput.parent('div'));
}
</script>
``````
`````` <tr id="tr">
<td class="table_th" >题目选项：
<td width="" id="contain">
<div class='inputs'>
<input type="text" id="comment" name="comment"
maxlength="30" style="width: 80%"  placeholder="选项1"/><font
color="red"> *</font></div>

<div class='inputs'><input type="text" id="title" name="title"
maxlength="30" style="width: 80%"" placeholder="选项2" />&nbsp;</div>

<div class='inputs'><input type="text" id="commentx" name="comment"
maxlength="30" style="width: 80% " " placeholder="选项3" /><span  onclick=del(this)>删除</span></div>

<div class='inputs'><input type="text" id="commentx" name="comment"
maxlength="30" style="width: 80% "  placeholder="选项4" /><span  onclick=del(this)>删除</span></div>

</td>
</tr>

<tr>
<td class="table_th">选择模式：</td>
<td width="">
最多<input type="text" id="maxnum" name="maxnum" style="width: 4%"/>项
</td>
</tr>
``````

6个回答

danielinbiti      2015.07.14 21:44

`````` <!DOCTYPE html>
<html>
<script src="http://lib.sinaapp.com/js/jquery/1.8.3/jquery.min.js"></script>

<script>
function del(t){
\$(t).parent('div').remove();
}
var val = \$('#maxnum').val();
if(!val){
return;
}
var lastInput = \$('#contain input:last');
var phName = lastInput.attr('placeholder');
phName = phName.replace("选项","");
phName = parseInt(phName,10)+1;
if(parseInt(val,10)>=parseInt(phName,10)){
\$('<div class="inputs"><input input type="text" id="commentx" name="comment" maxlength="30" style="width: 80% "  placeholder="选项'+phName+'" /><span onclick=del(this)>删除</span></div>').insertAfter(lastInput.parent('div'));
}else{
}
}
</script>
<body>
最多<input type="text" id='maxnum' name="maxnum" style="width: 4%"/>项
<table id="table_items" class="hovertable" style="width: 100%;" cellspacing="0"
<tr id="tr">
<td class="table_th" >题目选项：
<td width="" id="contain">
<div class='inputs'>
<input type="text" id="comment" name="comment"
maxlength="30" style="width: 80%"  placeholder="选项1"/><font
color="red"> *<span  onclick=del(this)>删除</span></font></div>

</td>
</tr>
</table>
</body>
</html>
``````
u013400939 膜拜 膜拜 膜拜 你就是及时雨啊
2 年多之前 回复
bpanyiwei   2015.07.14 21:38

1.题目选项： 后面缺少td结尾标签
2.另外input的id不能总是commentx，要在commentx后面加上数字，以示区别。

`````` function add(){
var lastInput = \$('#contain input:last');
var phName = lastInput.attr('placeholder');
var maxNum = \$("#maxnum").val();
var inputArr= \$('#contain').find('input');
var count=inputArr.length;
if(count>=maxNum*1){
return false;
}

phName = phName.replace("选项","");

\$('<div class="inputs"><input input type="text" id="commentx'+(++parseInt(phName))+'" name="comment" maxlength="30" style="width: 80% "  placeholder="选项'+(++parseInt(phName))+'" /><span onclick=del(this)>删除</span></div>').insertAfter(lastInput.parent('div'));
}
``````
u013400939 哦是的ID要改的谢谢你
2 年多之前 回复
u011376884   2015.07.14 17:53
`````` placeholder="选项'+(++parseInt(phName))+'"
``````

`````` if(phName=='1'){
phName='2'
}else if(phName=='2'){
phName='3'
}else if(phName=='3'){
phName='4'
}else if(phName=='4'){              **_  //这部分如何用数组循环实现_**
phName='5'
}else if(phName=='5'){
phName='6'
}
//这一段if判断全删掉
``````
u013400939 \$('<div class="inputs"><input input type="text" id="commentx" name="comment" maxlength="30" style="width: 80% " placeholder="选项'+(++parseInt(phName))+'" /><span onclick=del(this)>删除</span></div>').insertAfter(lastInput.parent('div'));改动后任然不成功
2 年多之前 回复
danielinbiti      2015.07.14 18:03

... ...阿拉伯数字的加一就行了，中文的数字得用数组。改用阿拉伯数字就简单。

u013400939 求解救
2 年多之前 回复
u013400939 大神，你终于又来了，我已经崩溃了，怎么改都不成功，快帮帮我把，哪里改成阿拉伯数字？这样也不成功啊placeholder="选项'+(++parseInt(phName))+'"
2 年多之前 回复
showbo      2015.07.14 21:43

``````
function del(t){
var dv = \$(t).parent('div');
dv.nextAll().find('input').attr('placeholder', function () { return '选项' + (parseInt(this.getAttribute('placeholder').replace('选项', ''), 10) - 1); });//重设后续的选项数字
dv.remove();
}
var lastInput = \$('#contain input:last');
var maxNum = parseInt(\$("#maxnum").val())||6;//没填写最多默认6
var nextId = \$('#contain div.inputs').length+1;
if (nextId > maxNum) { alert('超过最大项'+maxNum);return false}
\$('<div class="inputs"><input input type="text" id="commentx" name="comment" maxlength="30" style="width: 80% "  placeholder="选项'+nextId+'" /><span onclick=del(this)>删除</span></div>').insertAfter(lastInput.parent('div'));
}
``````
u012401478   2015.07.15 08:53

1.题目选项： 后面缺少td结尾标签
2.另外input的id不能总是commentx，要在commentx后面加上数字，以示区别。

+++++++11111111111111