简体   繁体   English

jQuery的HTML表td unselect无效

[英]HTML table td unselect with jQuery is not working

I want to select and unselect multiple HTML table td elements. 我想选择和取消选择多个HTML表td元素。 Below is some of my html code for days (1 to 31), 以下是我几天(1到31)的html代码,

<table class=" table-condensed">
    <tbody>
        <tr>
            <td class="day" id="d1">
                1
            </td>
            <td class="day" id="d2">
                2
            </td>
            <td class="day" id="d3">
                3
            </td>
            <td class="day" id="d4">
                4
            </td>
            <td class="day" id="d5">
                5
            </td>
            <td class="day" id="d6">
                6
            </td>
            <td class="day" id="d7">
                7
            </td>
        </tr>
        <tr>
            <td class="day" id="d8">
                8
            </td>
            <td class="day" id="d9">
                9
            </td>
            ....so on
        </tr>
    </tbody>
</table>

Here is my jQuery code which works for multiple select but not unselect, 这是我的jQuery代码,适用于多项选择,但不能取消选择,

$('td.day').click(function () {
    if ($(this).className != "active_day") {
        $(this).addClass('active_day');
    } else {
        $(this).addClass('day');
    }
});

Here is my css, 这是我的CSS,

td.active_day {
    color: #fff;
    background-color: #285e8e;
    border-color: #193c5a;
}

Better if 如果更好

if ($('#someElement').hasClass('your-class')

Try this 尝试这个

else {
    $(this).removeClass('active-day');  
    $(this).addClass('day');
}

You should remove your class to make it work. 您应该删除您的课程以使其正常运行。

The class of day is never being removed. 一天的课程永远不会被删除。 So you can just toggle the class of active_day using toggleClass('active_day') 因此,您可以使用toggleClass('active_day')切换active_day的类

http://api.jquery.com/toggleclass/ http://api.jquery.com/toggleclass/

$('td.day').click(function () {
    $(this).toggleClass('active_day')
});

http://jsfiddle.net/SeanWessell/vs4016zg/ http://jsfiddle.net/SeanWessell/vs4016zg/

If you needed to do a conditional check to see if something has a class then you would use hasClass('active-day') http://api.jquery.com/hasclass/ 如果需要进行条件检查以查看某物是否具有类,则可以使用hasClass('active-day') http://api.jquery.com/hasclass/

$('td.day').click(function () {
    if ($(this).hasClass("active_day")) {
        $(this).removeClass('active_day');
    } else {
        $(this).addClass('active_day');
    }
});

If you did want to toggle between day and active_day still use toggleclass and pass both classes. 如果您确实想在day和active_day之间切换,请仍然使用toggleclass并传递两个类。

$('td.day').click(function () {
    $(this).toggleClass('active_day day')
});

You have to use .hasClass() to do similar 您必须使用.hasClass()做类似的事情

Here is example code : 这是示例代码:

$('td').click(function () {
    if ($(this).hasClass( "active_day" )) {
        $(this).addClass('day');
    } else {
        $(this).addClass('active_day');
    }
});

Working Sample 工作样本

http://jsfiddle.net/Dhanck/4zr2djzh/ http://jsfiddle.net/Dhanck/4zr2djzh/

$('td').click(function () {
    $(this).toggleClass('active_day')
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM