通过Javascript获取表格单元格的坐标,并与不同的表格进行比较
Getting coordinates of table cells and comparing with different tables via Javascript
用这个和这个示例方法访问table
cell
的坐标真的很容易。但是,当我试图获取cell
并与页面上可用的另一个table
的cell
进行比较时,就会出现问题。因为我不知道如何在同一时间比较它们。我试了好几个小时才这么做,可惜还是没什么运气。
在下面的经典table
列表中,显示了具有不同id
编号的2个不同table
:
<table id="a1">
<tbody>
<tr>
<td>RED</td>
<td>GREEN</td>
<td>BLUE</td>
</tr>
<tr>
<td>YELLOW</td>
<td>PINK</td>
<td>samespothere</td>
</tr>
</tbody>
</table>
<hr>
<table id="a2">
<tbody>
<tr>
<td>BLACK</td>
<td>BROWN</td>
<td>WHITE</td>
</tr>
<tr>
<td>CYAN</td>
<td>GRAY</td>
<td>samespothereANDsomeextra</td>
</tr>
</tbody>
</table>
此外,我使用这个JS
示例的修改版本来获取cell
s的位置。我所做的这个修改版本无法进行比较操作。我刚刚编辑过,让它更容易。
var cells = document.getElementsByTagName("td"); //For all table cells on page.
var i;
for(i = 0; i < cells.length; i++)
{
cells[i].onclick = vera;
}
function vera()
{
var cellIndex = this.cellIndex + 1;
var rowIndex = this.parentNode.rowIndex + 1;
var centra = cellIndex +","+ rowIndex; //This gives the coordinate of cell which you clicked on.
alert(centra);
}
这是我的问题:当我点击samespothere
(我写的示例text
)table
cell
时,我需要进行比较操作。比较操作应能够与其他table
的相同位置进行比较。让我们这样想:如果第二个table
cell
(相同的位置,不同的table
)包括一些点击的cell
的文本(来自第一个表),则必须显示警报并说"此点击的文本在table id=1 cell:2row:2
中,在table id=2 cell:2row:2
中匹配"。
这是在线代码:http://jsfiddle.net/LujydnaL/
我想这就是你想要的:
function vera()
{
var cellIndex = this.cellIndex + 1;
var rowIndex = this.parentNode.rowIndex + 1;
var centra = cellIndex +","+ rowIndex; //This gives the coordinate of cell which you clicked on.
alert(centra);
// new code here
table2 = document.getElementById('a2');
rowInTable2 = table2.getElementsByTagName('tr')[rowIndex-1];
cellInTable2 = rowInTable2.getElementsByTagName('td')[cellIndex-1];
console.log(cellInTable2);
// do something with cellInTable2 now
}
window.onload = function () {
document.getElementsByTagName('table')[0].addEventListener('click', function(element) {
var rowIndex = element.target.parentElement.rowIndex;
var cellIndex = element.target.cellIndex;
var compare = document.getElementsByTagName('table')[1].rows[rowIndex].cells[cellIndex];
var myNodelist = document.querySelectorAll("td");
var i;
for (i = 0; i < myNodelist.length; i++) {
myNodelist[i].style.backgroundColor = "white";
}
compare.style.backgroundColor = "grey";
document.getElementById('alert1').innerHTML = ('CLICK => Row index = ' + rowIndex + ', Column index = ' + cellIndex);
document.getElementById('alert2').innerHTML = ('COMPARE = ' + compare.innerHTML)
}, false);
}
tr, th, td {
padding: 0.2rem;
border: 1px solid black
}
table:hover {
cursor: pointer;
}
<table>
<tbody>
<tr>
<td>a11</td>
<td>a12</td>
<td>a13</td>
</tr>
<tr>
<td>a21</td>
<td>a22</td>
<td>a23</td>
</tr>
</tbody>
</table>
<p id="alert1"></p>
<hr>
<table>
<tbody>
<tr>
<td>b11</td>
<td>b12</td>
<td>b13</td>
</tr>
<tr>
<td>b21</td>
<td>b22</td>
<td>b23</td>
</tr>
</tbody>
</table>
<p id="alert2"></p>
相关文章:
- 比较从函数和生成的日期对象
- 如何使用 node.js 比较两个 json 数组
- jQuery自定义验证比较多个输入的序列
- 我应该使用Ng提交还是点击表格
- CSS表格:从列平移到整个表格宽度
- 将HTML表格导出到excel时,无法将数据加载到excel文件中
- 反向字符串比较
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 通过JSON&比较时间
- 将DOM节点值与字符串Javascript进行比较
- 滚动和表格
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- Google电子表格getValue([cell containing ])不返回制表符
- 打印预览没有应用程序页眉和页脚的html表格
- 表格报告-动态比较特定用户的输入日期和现有日期
- 使用数组循环将值与另一个电子表格进行比较,然后写入新值
- 通过Javascript获取表格单元格的坐标,并与不同的表格进行比较
- 谷歌电子表格中的数组比较
- 谷歌电子表格字符串比较