Есть ли более чистый способ написания этих строк?Есть ли более чистый способ написания этих строк jQuery?
$("input:text").each(function() {
if ($(this).val() !== "")
$(this).show().prev().addClass('highlighted').parent().parent().prev().prop('checked', true);
});
EDIT: Некоторая дополнительная информация фона ...
Это примерно опрос, где ответы сохраняются, при переходе к следующему вопросу. По этому конкретному вопросу посетитель может проверить флажки. Однако последние 2 варианта - это поля ввода. Для обоих этих полей ввода я сделал фальшивые флажки и использовал jQuery, чтобы эти флажки выглядели функционально.
Если вы хотите вернуться к этому вопросу, обычные флажки, которые вы проверили, по-прежнему будут проверяться, но поддельные - нет. Также поля ввода скрыты, даже если они имеют значение.
Мне нужно jQuery выше, чтобы убедиться, что фальшивые флажки отмечены, когда поле ввода имеет значение. Класс «выделенный» предназначен для дополнительного визуального подтверждения того, что вы проверили этот ответ.
Теперь вот html. У меня очень мало контроля над этой разметкой.
<input class="fake-check" type="checkbox">
<div class="question-open-question">
<div class="form-item form-type-textfield form-item-situations-other1">
<label for="edit-situations-other1" class="highlighted">Ik wil: </label>
<input type="text" id="edit-situations-other1" name="situations[other1]" value="" size="60" maxlength="128" class="form-text" style="display: inline-block;">
</div>
</div>
Теперь не поймите меня неправильно. Работает над jQuery. Я просто хотел бы узнать более чистый способ написать это.
Таким образом, когда поле ввода имеет значение, я хочу 3 вещи: - Для того, чтобы показать, что поле ввода - Для того, чтобы добавить класс к метке - Для того, чтобы установить флажок
HTML-фрагмент для целевых элементов поможет. – ach
Вы можете вставить разрывы строк. Но вы никогда не должны использовать '.parent(). Parent()'. Обычно «ближайший» помогает сделать ваш код более универсальным. –
«parent(). Parent().prev() 'в вашем примере из 3 строк отличается от одной строки, потому что в 3 строке вы начинаете с' this', а в одной строке вы начинаете с '$ (this) .prev()'. – palmsey