【问题标题】:Count <li> according to input type hidden that has value根据具有值的隐藏输入类型计算 <li>
【发布时间】:2015-12-07 13:02:41
【问题描述】:

如何根据每个隐藏的输入类型计算li

HTML:

<ul id="room_1">
    <li>
        <div class="wrap participantlist wrap_body" style="color:#000000">
           <input type="hidden" name="hidden" value="1" id="channel">
        </div>
    </li>
    <li>
        <div class="wrap participantlist wrap_body" style="color:#000000">
            <input type="hidden" name="hidden" value="2" id="channel">
        </div>
     </li>
     <li>
        <div class="wrap participantlist wrap_body" style="color:#000000">
           <input type="hidden" name="hidden" value="" id="channel">
        </div>
     </li>
</ul>

Javascript:

 var participantLength = $("#room_1 li").length;
 console.log(participantLength);

具有值的输入隐藏的数量为 2

 <input type="hidden" name="hidden" value="1" id="channel">

 <input type="hidden" name="hidden" value="2" id="channel">

所以输出应该是2

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    为所有输入添加一个类,如

    <input type="hidden" name="hidden" value="2" id="channel" class="hidden_inputs">
    

    不如试试

    $('.hidden_inputs[value!=""]').length
    

    【讨论】:

      【解决方案2】:

      您可以使用.each 函数遍历输入元素,如果不是空值,则匹配如下:

      var inc = 0;
      $('input:hidden').each(function(){
       if ( this.value !== "" )
          inc++; // increment by 1
       });
      alert(inc); // get final output for input that not empty
      

      或者只是在选择器处检查

      alert($('input:hidden[value!=""]').length);
      

      DEMO

      【讨论】:

        【解决方案3】:

        你可以使用.filter()这个:

         var inputs = $('input:hidden').filter(function(){
          return this.value !== "";
        });
        console.log(inputs.length);
        

        您可以找到实时示例here

        【讨论】:

          【解决方案4】:

          你可以用这个

           $('input:hidden[value!=""]').length
          

          我注意到您对两个输入使用相同的 id(id="channel")。 注意ID应该是唯一的,如果要使用相同的名称,请改用class*

          JSFIDDLE DEMO

          【讨论】:

            【解决方案5】:

            就这样吧

            alert($("input[type='hidden'][value='']").length);
            

            Sample Fiddle

            【讨论】:

              【解决方案6】:

              你去吧,它应该向你显示那些有价值的输入的数量

              $("ul li input[value!='']").length
              

              【讨论】:

                【解决方案7】:

                您可以通过以下方式获得:

                alert($('input:hidden[value!=""]').length);
                

                有关更多信息,您可以阅读以下内容: Selecting empty text input using jQuery

                【讨论】:

                  猜你喜欢
                  • 2020-10-08
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-06-15
                  • 2020-01-29
                  • 2020-01-25
                  • 2011-10-18
                  相关资源
                  最近更新 更多