$ ( "input: not (: empty)" ) не работает
<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.
но он не работает.
заблаговременно
Ответы
Ответ 1
:empty
проверяет, имеет ли элемент дочерние элементы. Элементы input
не могут иметь дочерние элементы.
Если вы хотите проверить, что значение элемента input
пустое:
$(document).ready(function(){
$("button").click(function(){
$("input").filter(function() {
return this.value.length !== 0;
}).val("sdfdf");
});
});
Здесь мы получаем все элементы input
, а затем фильтруем его, поэтому включаются только те, чье свойство value
не ""
.
Ответ 2
Вы можете использовать другой селектор для своей задачи:
$("input[value='']").val("sdfdf");
Ответ 3
JQuery ( ': пусто') Описание: выберите все элементы, у которых нет детей (включая текст узлы).
От http://api.jquery.com/empty-selector/. Таким образом, :empty
не делает то, что вы думаете.
Посмотрите на этот ответ fooobar.com/questions/60662/... для решения.
Ответ 4
Вы можете использовать .each с этим внутри:
if( $(this).val().length === 0 ) {
$(this).parents('p').addClass('warning');
}