$(“input:not(:empty)”)无效

时间:2012-02-07 09:07:33

标签: jquery

<html>
<head>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    alert('hi'+$("input:text").val());
    $("input:not(:empty)").val("sdfdf");
  });
});
</script>
</head>
<body>
<input type="text" value="aa" />
<input type="text" value="" />
<input type="text" value="aa" />
<button>Click me</button>
</body>
</html>

我正在尝试使用jquery访问空文本框并为其分配值hello .. 但它不起作用。

提前致谢

4 个答案:

答案 0 :(得分:27)

:empty检查元素是否包含子元素。 input元素不能包含子元素。

如果要测试input元素的值是空白的:

$(document).ready(function(){
  $("button").click(function(){
    $("input").filter(function() {
        return this.value.length !== 0;
    }).val("sdfdf");
  });
});

我们获取了所有input元素,然后对其进行过滤,以便仅包含value属性不是""的元素。

答案 1 :(得分:5)

您可以为您的任务使用其他选择器:

$("input[value='']").val("sdfdf");

答案 2 :(得分:4)

  

的jQuery( ':空')   描述:选择所有没有子元素的元素(包括文本   节点)。

来自http://api.jquery.com/empty-selector/。因此:empty没有按照你的想法做到。

请查看此答案https://stackoverflow.com/a/1299468/138023以获得解决方案。

答案 3 :(得分:0)

你可以在里面使用.each:

if( $(this).val().length === 0 ) {
    $(this).parents('p').addClass('warning');
}