大师! 我有李的列表
<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并设置输入值+ 1 - 通过查找所有输入的最大值来增加1。
你能帮助我吗?
答案 0 :(得分:1)
请帮自己一个忙,并使用jQuery:
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>');
total
变量将填充输入值的总和。然后,您可以以任何您喜欢的方式使用它。
答案 1 :(得分:0)
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();
http://jsfiddle.net/KWuzu/embedded/
好的,一个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());
答案 2 :(得分:0)
在这里,你可以在没有jQuery的情况下进行DOM操作:
代码:
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);
答案 3 :(得分:0)
var list = jQuery("ul li input").map(function(){
return parseInt(jQuery(this).val(), 10);
}).get();
var idNumber = Math.max.apply( Math, list );