JQuery добавить пустые теги метки рядом с каждой радиокнопкой или флажком - PullRequest
1 голос
/ 16 декабря 2011

Мне нужен простой код jQuery, который будет добавлять пустой тег метки рядом с каждым переключателем или флажком

Так, например:

$('input[type="radio"]').next().add("<label for="radio"></label>");
$('input[type="checkbox"]').next().add("<label for="checkbox"></label>");

Как мне это сделать?

Спасибо.

Ответы [ 4 ]

5 голосов
/ 16 декабря 2011

Вы захотите использовать после для достижения этой цели.Кроме того, вы хотите, чтобы for вашего ярлыка было id, к которому он относится.

$('input[type="checkbox"]').each(function() {
     var cb = $(this);
     cb.after($("<label />")
                .attr("for", cb.attr("id")) );
});

Вы сказали, что хотите пустые ярлыки, но на всякий случай, если вы хотите, чтобы ярлыкичтобы отобразить значение флажка, рядом с которым они находятся, нужно сделать следующее:

$('input[type="checkbox"]').each(function() {
     var cb = $(this);
     cb.after($("<label />")
                .attr("for", cb.attr("id"))
                .text(cb.val()) );
});
2 голосов
/ 16 декабря 2011
$('input[type="radio"]').after("<label for='radio'></label>");
$('input[type="checkbox"]').after("<label for='checkbox'></label>");
1 голос
/ 16 декабря 2011

Вы хотите использовать функцию jQuery .after()

$('input[type="radio"]').after('<label for="radio"></label>');
$('input[type="checkbox"]').after('<label for="checkbox"></label>');

Но, если вы хотите, чтобы метка была нацелена на правильный элемент, вам нужно будет сделать это:

$('input[type="radio"], input[type="checkbox"]').each( function() {
    var id = $(this).attr( "id" );
    $(this).after('<label for="' + id + '"></label>');
} );

Вам нужно указать идентификатор элемента в атрибуте for тега label

0 голосов
/ 16 декабря 2011
$(':radio, :checkbox').each(function () {
    $(this).before('<label for="' + this.id + '"></label>');
});
...