Javascript .hasClass()会忘记类赋值。为什么?

Javascript .hasClass()会忘记类赋值。为什么?,javascript,jquery,html,css,jquery-selectors,Javascript,Jquery,Html,Css,Jquery Selectors,代码: $(文档).ready(函数(){ $(#lifegrid tr td')。单击(函数(){ $(this.addClass('selected'); }); $(“#动画按钮”)。单击(函数(){ $(this.addClass('green'); 制作动画(); }); 函数animate(){ var单元格=[]; 对于(var x=0;x

代码:


$(文档).ready(函数(){
$(#lifegrid tr td')。单击(函数(){
$(this.addClass('selected');
});
$(“#动画按钮”)。单击(函数(){
$(this.addClass('green');
制作动画();
});
函数animate(){
var单元格=[];
对于(var x=0;x<16;x++){
单元[y]=[];
对于(变量y=0;y<8;y++){
if($('#'+x+','+y).hasClass('selected')){
单元[x,y]=“活着”;
console.log(x+“,+y+”处于活动状态)
}否则{
单元[x,y]=“死”;
console.log(x+“,+y+”已失效)
}
}
}
}
});
我的代码还包含一个带有
元素的
,所有元素的ID都是“x,y”形式。示例:
id=“4,12”


此代码仅返回“
已失效”,无论元素是否已分配“选定”类。为什么?

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

如果用反斜杠(或使用逗号以外的其他东西)来转义逗号,则应该可以使用


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

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

如果用反斜杠(或使用逗号以外的其他东西)来转义逗号,则应该可以使用


请注意,我使用了双反斜杠,因为有必要使反斜杠超过字符串常量语法。

所以您的选择器看起来像
$('#1,2')
2
不是有效的标记,也不是任何其他数字。您可以共享html吗?因此您的选择器看起来像
$('#1,2')
2
不是有效的标记,也不是任何其他数字。您可以共享解决此问题的html吗!一旦堆栈溢出计时器机制允许,将接受应答。谢谢大家!@用户2811095很高兴听到这个消息!还要注意,html5之前的代码,逗号在
id
中是无效的。这就解决了这个问题!一旦堆栈溢出计时器机制允许,将接受应答。谢谢大家!@用户2811095很高兴听到这个消息!还请注意,html5之前版本的逗号在
id
中无效。
<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>
                if ($('#' + x + '\\,' + y).hasClass('selected')) {