如何检查网格的特定位置是否有元素?

时间:2018-05-26 19:54:03

标签: javascript css css3 grid css-grid

我们假设我们有一个包含5列的网格,例如3行。但是元素数量不明,处于未知位置。

from css-tricks.com

让我们说网格中唯一的元素就是红色区域。我需要一个具有两个属性的函数,将它们命名为row, column,它们表示网格的坐标。因此,如果我们设置它们1, 3,则函数必须返回false,因为网格中没有任何元素。但是如果我们设置它们3, 4,函数必须返回true。我只需要检查是否有任何元素在指定坐标中有起点,但我认为如果函数可以检查网格是否包含(任何元素覆盖点)坐标处的任何元素,它将更有用。可能吗? (使用纯javascript)

2 个答案:

答案 0 :(得分:0)

为所有元素添加ID,例如此id =“12”(第1行,第2列)。 在里面使用“for”和“if”。

答案 1 :(得分:0)

获取HTML元素及其父元素。然后在table rows和cols集合中搜索它们的位置,并将它们与给定的行和列进行比较。

function search(row, col){
    var elem = table.querySelector("tag name or element's identifier"),
        parentCol = elem.parentNode,
        parentRow = parentCol.parentNode,
        rowsCollection = table.querySelectorAll("tr"),
        realRowIndex = [].indexOf.call(rowsCollection, parentRow),
        realColIndex = [].indexOf.call(rowsCollection[realRowIndex].querySelectorAll("td"), parentCol);
        
    return row == realRowIndex && col == realColIndex;
}

console.log(search(2, 3)); //true