隐藏文本但不在标签jquery中输入

时间:2009-12-01 19:21:46

标签: javascript jquery html

我有一个标签和输入从我们正在使用的购物车输出。我不想破解购物车的核心来改变它的输出方式。所以代码就是标签内的输入:

<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文本不是真正的下一个..我不能使用孤儿,因为它不是孤儿是标签的一部分。 我错过了什么?谢谢!

5 个答案:

答案 0 :(得分:4)

仅使用复选框替换标签内容。

var l = $('label[for=FormField_29_0]');
l.html(l.find('input'));

答案 1 :(得分:0)

使用jquery,您可以从标签中删除输入元素,将其添加到标签(将其重新添加),然后隐藏标签。

http://docs.jquery.com/Manipulation/remove#expr

答案 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>