我在使用jQuery' s时出现问题:空伪选择器。基本上,它不像我认为的那样对输入进行处理。鉴于这个HTML,我试图计算所有没有循环的值的输入。
<div id="sampleDiv">
<label>My first Input:</label>
<input name="test" id="firstInput" type="text" value="default text" /><br/><br/>
<label>My second Input:</label>
<input name="test" id="secondInput" type="text" value="" /><br/><br/>
<label>My third Input:</label>
<input name="test" id="thirdInput" type="text" value="" />
我正在使用像这样的选择器
$('#sampleDiv input:empty').length
但它返回3,包括有价值的那个。这里有小提琴,感谢您的帮助!: https://jsfiddle.net/chas688/b5fad3Lu/
答案 0 :(得分:2)
:empty
选择器旨在查看元素的子元素。这就是为什么它在这种情况下不一定适合你。相反,您可以选择value
属性:
$('#sampleDiv input[value=""]').length;
或filter()
:
$('#sampleDiv input').filter(function() {
return this.value == '';
}).length;
答案 1 :(得分:0)
scoped_lock
代表空HTML而不是空值!你必须这样使用:
:empty
或使用count = 0;
$('#sampleDiv input').each(function () {
if ($(this).val().length == 0)
count++;
});
:
.filter()
答案 2 :(得分:0)
这个适用于所有输入文本。 https://jsfiddle.net/b5fad3Lu/2/
var pl = $('input:text[value=""]').length;
$('#numberofEmpty').text( pl );