0

チェックボックスのリストがあります。ラベルが付いているものと付いていないものがあります。ラベルのないすべてのチェックボックスに特定のスタイルを付けられるようにしたい。これができるアイデアはありますか?

<input type="checkbox" name="publish"/>
<input type="checkbox" id="delete" name="delete" /><label for="delete">Delete</label>
4

2 に答える 2

3
$("input[type=checkbox]").each(function () {
   if (!$("label[for='" + $(this).attr('id') + "']").length) {
      $(this).css(styles);
   }
});

HTMLの外観によっては、CSSだけでこれを行うこともできますが、CSSで比較することはできませidfor

于 2013-01-21T20:22:02.413 に答える
2

ラベルが機能するためには、ラベルがfor入力要素のと一致する属性を持っているidか、入力要素の祖先である必要があります。この関数は、引数としてjQuery要素または文字列セレクターを取り、for要素の値と一致する値を持つ属性を持つラベルがidあるかどうか、またはラベルの祖先があるかどうかを確認します。

function hasLabel(el) {
    el = $(el); // ensure jQuery-wrapped
    return (
        el.closest('label').length > 0 ||
        $('label[for="' + el.attr('id') + '"]').length > 0
    );
}
于 2013-01-21T20:22:11.263 に答える