1

我正在尝试创建一个标签并将其放在输入复选框的外部,例如

我在尝试什么,我的 html 是

<input type="checkbox">

我的jQuery是

$('input[type="checkbox"]').after('<label class="label-select"><span></span></label>');

现在输出是

<input type="checkbox">
<label class="label-select">
<span></span>
</label>

但我想要这样

<label class="label-select">
<input type="checkbox">
<span></span>
</label>

那么我该如何为此编写jquery。我不喜欢更改 HTML。

感谢您的回答。

4

6 回答 6

3

wrap()不使用after()

$('input[type="checkbox"]').wrap('<label class="label-select"></label>').after('<span></span>');

示例小提琴

于 2013-08-06T10:38:01.883 回答
1

您正在寻找.wrap() jQuery 函数。

于 2013-08-06T10:39:06.077 回答
1

如果你使用 jQuery.wrap() 你应该能够实现你正在寻找的东西。

$('input[type="checkbox"]').after('<span></span>').wrap('<label class="label-select"></label>');

编辑 让两个回到前面对不起,应该是

$('input[type="checkbox"]').wrap('<label class="label-select"></label>').after('<span></span>'); 
于 2013-08-06T10:41:48.593 回答
0

您所要做的就是将元素(复选框)包装在标签内。

$('input[type="checkbox"]').wrap('<label class="label-select"><span></span></label>');
于 2013-08-06T10:47:45.223 回答
-1

试试这个:

$('input[type="checkbox"]').wrap('<label class="label-select"></label>').wrap('<span></span>');
于 2013-08-06T10:44:57.197 回答
-1

或者您可以使用 jquery append() 方法在块内附加 html。试试这个,

$('.label-select').append('<input type="checkbox"><span></span>');
于 2013-08-06T10:47:11.280 回答