2017-10-11 73 views
-1

我也许有些奇怪的问题,但解决这个问题对我来说非常重要。 我有表是不稳定的行和列的数量,所以我把+ =操作符来创建单元格,行等现在我需要确定每个单元格,但我不明白我怎么能做到这一点这个情况。许多元素元素的ID

function drawBoard(board) { 
var t=""; 
t="<table border: 2px >"; 
var x,y; 
for(x=0; x<board.length; x++){ 
    t+="<tr>"; 
    for(y=0; y<board.length; y++){ 
     t+="<td class='tablecell' onclick=''>X</td>" 
    } 
    t+="</tr>"; 
} 
t+="</table>"; 
} 
+1

你是什么意思“需要识别每个细胞”? –

+0

给予他们每个人的ID – lisa

回答

0

您可以使用:

const cells = document.getElementsByClassName('tablecell') 

或者你可以收集创作阶段的每一个细胞,例如:

const cells = []; 

for (let i = 0; i < board.length){ 
    for (let j = 0; j < board.length){ 
    const cell = document.createElement('td'); 
    cells.push(cell); 
    } 
} 
1

通过识别小区我假设您希望稍后在代码的不同部分中引用它们。

你可以通过给你的行和单元格类和/或ID来实现它。

对于一个行,例如:

t += '<tr id="tr-' + x + '">'; 

用于小区

t += '<td class="tablecell tr-' + x + ' col-' + y + '" onclick="" id="td-' + x + '-' + y + '">X</td>' 

然后行可以通过#tr-x和细胞#tr-x > td来引用,并且所有特定columnd​​

作为马修斯Avellar提到,为一个单元格添加了id,以防万一您想使用引用网格上的特定单元格

+0

只有使用'tr-x'作为ID才会使同一行'​​'具有相同的ID,但是。您可能想要使用'x'和'y'的组合 –

+0

就在2分钟前,我添加了辅助类'col-y',以防我们想要选择特定类型的所有列,但确实要添加额外的'id'来创建网格将是有用的,谢谢 – Moseleyi

0

你可以设置每一个的id等于你的'y'变量。

喜欢的东西:

function drawBoard(board) { 
    var t = ""; 
    t = "<table border: 2px >"; 
    var x, y; 
    for (x = 0; x < board.length; x++) { 
    t += "<tr>"; 
    for (y = 0; y < board.length; y++) { 
     t += `<td id="table-${y}" class='tablecell' onclick=''>X</td>` 
    } 
    t += "</tr>"; 
    } 
    t += "</table>"; 
} 

使用位ES6模板文字,你可以设置配合你的ID,以你的“Y”变量,因为它是一个递增的数字。

+0

只有使用'y'作为ID会使同列'​​'具有相同的ID,但。你可能想要使用'x'和'y'的组合 –