.hasClass()忘记了类的分配.为什么?

use*_*095 0 html javascript css jquery jquery-selectors

码:

<script>

    $(document).ready(function () {

        $('#lifegrid tr td').click(function () {
            $(this).addClass('selected');
        });

        $('#animatebutton').click(function () {
            $(this).addClass('green');
            animate();
        });

        function animate() {

            var cell = [];

            for (var x = 0; x < 16; x++) {  

                cell[y] = [];

                for (var y = 0; y < 8; y++) {

                    if ($('#' + x + ',' + y).hasClass('selected')) {
                        cell[x,y] = 'alive';
                        console.log( x + "," + y + " is alive")

                    } else {
                        cell[x,y] = 'dead';
                        console.log( x + "," + y + " is dead")
                    }
                }
            }
        }
    });

</script>
Run Code Online (Sandbox Code Playgroud)

我的代码还包含一个<table>with <td>元素,所有元素都有"x,y"形式的id.示例:id="4,12".

<coordinate>无论元素是否已分配"已选定"类,此代码仅返回" 已死".为什么?

Poi*_*nty 5

在元素中使用逗号"id"值是有问题的,因为逗号是CSS选择器元字符.

如果您使用反斜杠(或使用逗号以外的其他内容)转义逗号,它应该有效.

                if ($('#' + x + '\\,' + y).hasClass('selected')) {
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了反斜杠,因为必须使反斜杠超过字符串常量语法.