Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 遍历每个li子项输入,找到值并逐个增加_Javascript_Input - Fatal编程技术网

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 );