根据隐藏的具有值的输入类型计算<li>

时间:2015-09-11 04:29:31

标签: javascript jquery 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>

HTML:

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

使用Javascript:

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

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

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

2

所以输出应为<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <listDatasetsResponse xmlns="http://www.algorithmics.com/schema"> <status>OK</status> <datasets size="31"> <dataset> <id>stress_20150910_20150910_160259</id> <basedOn>Mimm_20150910_20150910_030922</basedOn> <active>false</active> <sandbox>true</sandbox> <ownedBy>admin</ownedBy> <createdOn>2015-09-10T16:04:24.199-04:00</createdOn> <createdBy>rtcesupp</createdBy> <evaluated>true</evaluated> <stopped>false</stopped> </dataset> <dataset> <id>imm_20150910_20150910_140315</id> <basedOn>Mimm_20150910_20150910_030922</basedOn> <active>true</active> <sandbox>true</sandbox> <ownedBy>admin</ownedBy> <createdOn>2015-09-10T14:04:42.696-04:00</createdOn> <createdBy>rtcesupp</createdBy> <evaluated>true</evaluated> <stopped>false</stopped> </dataset> </datasets> </listDatasetsResponse>

5 个答案:

答案 0 :(得分:1)

您可以使用.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

答案 1 :(得分:1)

你可以使用这个

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

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

<强> JSFIDDLE DEMO

答案 2 :(得分:1)

就这样做

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

Sample Fiddle

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

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

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

有关详细信息,请参阅: Selecting empty text input using jQuery