jQuery : 空不处理输入
jQuery :empty not working with input
我在使用 jQuery 的 :empty 伪选择器时遇到问题。基本上,它没有按照我认为应该的方式处理输入。鉴于此 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,包括具有值的那个。这是 fiddle,感谢您的帮助!:
https://jsfiddle.net/chas688/b5fad3Lu/
:empty
selector 旨在查看元素的子元素。这就是为什么在这种情况下它不一定对您有用。相反,您可以 select 通过 value
属性:
$('#sampleDiv input[value=""]').length;
或通过filter()
:
$('#sampleDiv input').filter(function() {
return this.value == '';
}).length;
:empty
代表空 HTML 而不是空值!你必须这样使用:
count = 0;
$('#sampleDiv input').each(function () {
if ($(this).val().length == 0)
count++;
});
或使用.filter()
:
$('#sampleDiv input').filter(function() {
return ($(this).val().trim().length == 0);
}).length;
这个适用于所有输入文本。
https://jsfiddle.net/b5fad3Lu/2/
var pl = $('input:text[value=""]').length;
$('#numberofEmpty').text( pl );
我在使用 jQuery 的 :empty 伪选择器时遇到问题。基本上,它没有按照我认为应该的方式处理输入。鉴于此 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,包括具有值的那个。这是 fiddle,感谢您的帮助!: https://jsfiddle.net/chas688/b5fad3Lu/
:empty
selector 旨在查看元素的子元素。这就是为什么在这种情况下它不一定对您有用。相反,您可以 select 通过 value
属性:
$('#sampleDiv input[value=""]').length;
或通过filter()
:
$('#sampleDiv input').filter(function() {
return this.value == '';
}).length;
:empty
代表空 HTML 而不是空值!你必须这样使用:
count = 0;
$('#sampleDiv input').each(function () {
if ($(this).val().length == 0)
count++;
});
或使用.filter()
:
$('#sampleDiv input').filter(function() {
return ($(this).val().trim().length == 0);
}).length;
这个适用于所有输入文本。 https://jsfiddle.net/b5fad3Lu/2/
var pl = $('input:text[value=""]').length;
$('#numberofEmpty').text( pl );