<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js">
</script>
</head>
<body>
<div>
<input type="text" />
<label>
Not visible
</label>
</div>
<div>
<input type="text" value="foo" />
<label>
Visible
</label>
</div>
<script type="text/javascript">
$(function () {
$('input').each(function () {
if ( !this.value ) {
$(this).siblings('label').hide();
}
});
});
</script>
</body>
</html>
Кстати, мой сокращённый пример тоже работает, только в таком варианте:
$('input:not([value]) ~ label').hide();