我有一个标签和输入从我们正在使用的购物车输出。我不想破解购物车的核心来改变它的输出方式。所以代码就是标签内的输入:
<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>
我试图在标签中隐藏“是”这个词,但我似乎无法选择它。它不是自标签以来的输入兄弟。如果我选择父输入,它仍然使输入的整个标签消失。我接下来尝试了,它不会选择它,因为dom-wise文本不是真正的下一个..我不能使用孤儿,因为它不是孤儿是标签的一部分。 我错过了什么?谢谢!
答案 0 :(得分:4)
仅使用复选框替换标签内容。
var l = $('label[for=FormField_29_0]');
l.html(l.find('input'));
答案 1 :(得分:0)
使用jquery,您可以从标签中删除输入元素,将其添加到标签(将其重新添加),然后隐藏标签。
答案 2 :(得分:0)
这有效,但可能有更好的方法:
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);
答案 3 :(得分:0)
var $formfield = $('#FormField_29');
$formfield.find('label').html($formfield.find('label input'));
答案 4 :(得分:0)
我认为您的问题与您的输入嵌套在标签内的事实有关。使用下面改变的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>