Скрыть текст, но не вводить внутри метки jquery
У меня есть этикетка и информация, выводимая из корзины покупок, которую мы используем. Я не хочу взламывать ядро корзины, чтобы изменить способ ее вывода. таким образом, код, таким образом, с вводом внутри метки:
<div id="FormField_29" class="FormField">
<label for="FormField_29_0"><input type="checkbox" id="FormField_29_0" name="FormField[2][29][0]" value="Yes" class="subscribeBox FormFieldOption" /> Yes</label>
</div>
я пытаюсь скрыть слово "да" в ярлыке, но не могу выбрать его. это не брат или сестра ввода, так как его метка. и если я выбираю родителя, а не ввод, он все равно заставляет исчезнуть весь ярлык с вводом. Я попытался затем, и он не будет выбирать его, так как в действительности текст на самом деле не следующий. Я не могу использовать сироту, поскольку она не является сиротой, являющейся частью лейбла. что мне не хватает? Спасибо!
5 ответов
Замените содержимое ярлыков только флажком.
var l = $('label[for=FormField_29_0]');
l.html(l.find('input'));
Это работает, но, возможно, есть лучший способ:
var $label = $("label[for='FormField_29_0']");
var $checkbox = $label.find("input:checkbox");
$label.html($checkbox);
редактировать
Так как вы удаляете текст, я думаю, вы можете заменить метку только флажком:
var $label = $("label[for='FormField_29_0']");
$label.replaceWith($label.find("input:checkbox"));
редактировать
Или, если вы хотите оставить текст на месте, но просто скрыть его (опять же, я уверен, что есть лучший способ):
var $label = $("label[for='FormField_29_0']");
var $text = $('<span>' + $label.text() + '</span>').hide();
var $checkbox = $label.find("input:checkbox");
$label.empty().append($checkbox).append($text);
var $formfield = $('#FormField_29');
$formfield.find('label').html($formfield.find('label input'));
Я думаю, что ваша проблема связана с тем фактом, что ваш вклад вложен в тег label. Используя измененный HTML ниже, вы сможете изменить текст метки с любым количеством селекторов, таких как $('.FormField label').text('');
<div id="FormField_29" class="FormField">
<label for="FormField_29_0">Yes</label><input type="checkbox" id="FormField_29_0" name="FormField[2][29][0]" value="Yes" class="subscribeBox FormFieldOption" />
</div>
Используя jquery, вы можете удалить элемент ввода из метки, добавить его к метке (добавить его обратно), а затем скрыть метку.