1

可能重复:
使用 jquery 更改 li 的背景颜色

我正在尝试在 onselect 'checkbox' 上更改 li 的背景颜色。

<ul>
 <li><input type="checkbox" /> Link 1</li>
 <li><input type="checkbox" /> Link 2</li>
 <li><input type="checkbox" /> Link 3</li>
 <li><input type="checkbox" /> Link 4</li>
</ul>

当有人选择复选框时,我需要更改整行背景颜色。

在此处输入图像描述

4

7 回答 7

2

HTML

<ul>
 <li><input type="checkbox" /> <label> Link 1</label></li>
 <li><input type="checkbox" /> <label> Link 2</label></li>
 <li><input type="checkbox" /> <label> Link 3</label></li>
 <li><input type="checkbox" /> <label> Link 4</label></li>
</ul>​

CSS

label{width:150px; display:inline-block}
input[type="checkbox"]:checked+label{background:blue; color:white}​

演示

对于 IE,您可以使用类似http://selectivizr.com/的库

于 2012-11-21T10:18:47.967 回答
1

试试这个,我认为它会工作。

$('input[type=checkbox]').click(function(){
$('input[type=checkbox]').parent().css('background',''); //This turns all checkboxes background to default
$(this).parent().css('background','red');
});
于 2012-11-21T10:16:46.200 回答
1

试试这个:

$('input[type=checkbox]').click(function(){
    if(this.checked) {
        $(this).parent().css('background','red');
    } else {
        $(this).parent().css('background','');
    }
});
于 2012-11-21T10:18:15.020 回答
1

试试这个:

http://jsfiddle.net/AHrrP/

HTML

<ul>
 <li><input type="checkbox" /> Link 1</li>
 <li><input type="checkbox" /> Link 2</li>
 <li><input type="checkbox" /> Link 3</li>
 <li><input type="checkbox" /> Link 4</li>
</ul>​

JS

$(function(){
    $('input[type="checkbox"]').click(function(){
        if(this.checked)
            $(this).closest('li').addClass('blue');
        else
            $(this).closest('li').removeClass('blue');
    });
});​

CSS

li {
    padding:4px;
}

li.blue {
    background-color: #08C;
}​
于 2012-11-21T10:22:34.607 回答
0

jQuery

$('input[type=checkbox]').click(function(){
    $(this).parent().toggleClass('highlight');
});

CSS

.highlight{
    background-color:blue;
}

我假设您希望重新单击复选框时突出显示消失。这是一个工作的jsbin

于 2012-11-21T10:18:17.080 回答
0
$('li :checkbox').click(function(){
    $(this).parent().css('background',$(this):is(":checked")?'blue':'');
});
于 2012-11-21T10:21:28.453 回答
0

试试这个:

    <ul id="myList">
        <li><input type="checkbox" /> Link 1</li>
        <li><input type="checkbox" /> Link 2</li>
        <li><input type="checkbox" /> Link 3</li>
        <li><input type="checkbox" /> Link 4</li>
    </ul>

    <script type="text/javascript">
        $(document).ready(function(){
            $('#myList input').each(function(){
            console.log(this);
                $(this).click(function(){
                console.log(this);
                    if($(this).prop('checked')){
                        $(this).parent().css('background','#eee');
                    }
                    else{
                        $(this).parent().css('background','');
                    }
                });
            });             
        });

    </script>
于 2012-11-21T10:22:15.437 回答