Javascript在标签上添加css类

时间:2014-03-18 19:48:31

标签: javascript jquery html

我的HTML是这样的:

<table class="ListCheck">
<tbody>
<tr>
<td>
<span class="listitem">
    <input name="ctl00$MainContent$List$0" class="location" id="MainContent_List_0" type="checkbox">
    <label for="MainContent_List_0">test</label></span>
</td>
<td>
<span class="listitem">
    <input name="ctl00$MainContent$List$1" class="location" id="MainContent_List_1" type="checkbox">
    <label for="MainContent_List_1">test</label></span>
</td>
<td>
<span class="listitem">
    <input name="ctl00$MainContent$List$2" class="location" id="MainContent_List_2" type="checkbox">
    <label for="MainContent_List_2">test</label></span>
</td>
</tr>
</tbody>
</table>

我正在尝试添加javascript以在标签上添加类以在选中复选框时应用某些css

我的脚本是:

<script type='text/javascript'>
        $('.listitem').each(function () {
            $(this).children("input").addClass("location");
            if ($(this).children("input").is(":checked"))
            {
                $(this).children('label').addClass("checked");
            } else {
                $(this).children('label').removeClass("checked");
            }
        });
</script>

但由于某种原因,它不是在运行时在标签上添加类。请查看我的代码,让我知道我错过了什么。 TIA。

4 个答案:

答案 0 :(得分:4)

您可以使用next()方法访问相应的<label>,如下所示:

$('input[type="checkbox"]').click(function () {
     $(this).next().toggleClass("checked");
});

Working fiddle

答案 1 :(得分:1)

尝试使用

代码
    $( ".target" ).change(function() {
      alert( "Handler for .change() called." );
    });

所以

<script type='text/javascript'>
        $('.listitem').each(function () {
            $(this).children("input").addClass("location");

            $(this).children("input").change(function() {

            if ($(this).children("input").is(":checked"))
            {
                $(this).children('label').addClass("checked");
            } else {
                $(this).children('label').removeClass("checked");
            }
          });// missing bracket ;)
        });
</script>

答案 2 :(得分:0)

我改变了你的代码,如果我理解你的话就错了。

   $('.location').click(function() {
                if ($(this).is(":checked"))
                {
                     console.log('added');
                    $(this).closest('label').addClass("checked");
                } else {
                    console.log('removed');
                    $(this).closest('label').removeClass("checked");
                }
    });

http://jsfiddle.net/W7nr4/

答案 3 :(得分:0)

您的javascript代码应如下所示:

    $('.listitem').click(function () {
        $(this).children("input").addClass("location");
        if ($(this).children("input").is(":checked"))
        {
            $(this).children('label').addClass("checked");
        } else {
            $(this).children('label').removeClass("checked");
        }
    });

单击将应用于选择器找到的所有元素。