Javascript 遍历每个li子项输入,找到值并逐个增加
大师! 我有一张李的名单Javascript 遍历每个li子项输入,找到值并逐个增加,javascript,input,Javascript,Input,大师! 我有一张李的名单 <ul> <li><input type="hidden" value="7" name="order"></li> <li><input type="hidden" value="3" name="order"></li> <li><input type="hidden" value="6" name="order"></li> <li
<ul>
<li><input type="hidden" value="7" name="order"></li>
<li><input type="hidden" value="3" name="order"></li>
<li><input type="hidden" value="6" name="order"></li>
<li><input type="hidden" value="5" name="order"></li>
<li><input type="hidden" value="1" name="order"></li>
<li><input type="hidden" value="2" name="order"></li>
</ul>
我想在列表中添加一个带有隐藏输入的新li,并通过查找所有输入的最大值来设置输入值val+1-增加1
你能帮我个忙吗?请帮自己一个忙,用这个:
var total;
$('li').find('input').each(function(){
total = total == undefined || parseInt($(this).val()) > total ? parseInt($(this).val()) : total;
})
$('ul').append('<li><input type="hidden" value="' + (total + 1) + '" name="order"></li>');
var合计;
$('li')。查找('input')。每个(函数(){
total=total==undefined | | parseInt($(this.val())>total?parseInt($(this.val()):total;
})
$('ul')。追加('li>');
total
变量将填充输入值之和。然后,您可以以任何方式使用它。函数doSomething(){
function doSomething() {
var list = document.getElementsByTagName("ul");
var liTags = list[0].getElementsByTagName("li");
var max = -1;
for (var i = 0; i < liTags.length; i++) {
var inp = liTags[i].getElementsByTagName("input");
if (inp[0].value > max) {
max = inp[0].value;
}
}
var newLI = document.createElement("li");
list[0].appendChild(newLI);
newLI.innerHTML = '<input type="hidden" value="' + (parseInt(max,10) + 1) + '" name="order">';
alert(list[0].innerHTML);
}
doSomething();
var list=document.getElementsByTagName(“ul”);
var liTags=list[0]。getElementsByTagName(“li”);
var max=-1;
对于(变量i=0;i最大值){
max=inp[0]。值;
}
}
var newLI=document.createElement(“li”);
列表[0]。追加子项(newLI);
newLI.innerHTML='';
警报(列表[0]。innerHTML);
}
doSomething();
好的,jQuery解决方案:
var $inputs = $("ul>li>input");
var max = -1;
$inputs.each(function () {
max = $(this).val() > max ? $(this).val() : max
});
var $list = $("ul:first");
$list.append('<li><input type="hidden" value="' + (parseInt(max, 10) + 1) + '" name="order"></li>');
alert($list.html());
var$input=$(“ul>li>input”);
var max=-1;
$inputs.每个(函数(){
max=$(this).val()>max?$(this).val():max
});
var$list=$(“ul:第一”);
$list.append(“”);
警报($list.html());
这是一个没有jQuery的DOM操作练习: 代码:
var inputs=document.getElementsByTagName('input'),
ul=输入[0]。parentNode.parentNode,
inputName=输入[0]。名称,
最大值=0,
newLi=document.createElement('li'),
newInput=document.createElement('input'),
新价值;
对于(变量i=0,len=inputs.length;i
当然可以,但请先发布您尝试过的内容。说真的,在谷歌上搜索5分钟,您就会发现一些东西。我不确定你到底想要什么。你想找到输入的最大值还是真的要添加新的输入?这太可惜了。记住,我们都是自愿来帮忙的。如果你很着急,考虑雇佣一个人。公平地说,我认为他得到了更多的斥责,然后他需要考虑许多不令人鼓舞的问题。让我们看看他需要什么帮助他-|您的代码仍然不正确。对于这个小而简单的任务来说,jQuery是一项过火的任务。shennan,我不需要所有值的总和,但需要找到最大值。OP要求最大值加1成为新的li
中新的输入的值。除非你专门针对中国市场开发网站,否则它们一点也不受欢迎。我们所说的总体份额不到1%。您可以将这些用户引导到该站点的非JS版本。@jam:这不是战争。只是简单的讨论一下。你找到的答案基本上就是深南在做什么。谢谢,但我真的需要一个jquery:)
var inputs = document.getElementsByTagName('input'),
ul = inputs[0].parentNode.parentNode,
inputName = inputs[0].name,
max = 0,
newLi = document.createElement('li'),
newInput = document.createElement('input'),
newValue;
for (var i = 0, len = inputs.length; i < len; i++) {
max = Math.max(max, inputs[i].value);
}
newInput.value = newValue;
newInput.name = inputName;
newLi.appendChild(newInput);
newLi.textContent = newValue;
ul.appendChild(newLi);
var list = jQuery("ul li input").map(function(){
return parseInt(jQuery(this).val(), 10);
}).get();
var idNumber = Math.max.apply( Math, list );