代码:
<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>
我的代码还包含<table>
个<td>
元素,所有元素都有“x,y”形式的ID。示例:id="4,12"
。
此代码仅返回“<coordinate>
已死”,无论该元素是否已分配“已选定”类。为什么呢?
答案 0 :(得分:5)
在元素中使用逗号“id”值是有问题的,因为逗号是CSS选择器元字符。
如果使用反斜杠(或使用逗号以外的其他内容)转义逗号,它应该有效。
if ($('#' + x + '\\,' + y).hasClass('selected')) {
请注意,我使用了 double 反斜杠,因为必须让反斜杠超过字符串常量语法。