javascript - 单击两个表格单元格突出显示其内容并将其值存储在变量中

标签 javascript html mysql

我从这样的数据库中获取一个表(行号可能会有所不同):

|Player 1|Player 2|
-------------------
|Danny   |Danny   |
|John    |John    |
|Mary    |Mary    |

我想选择两个名称,每个玩家列一个,并将它们存储在两个变量中,例如player1_id和player2_id,稍后我将使用它们将数据插入数据库。我还想在单击名称时突出显示它们。当我单击另一个名称时,突出显示和关联的变量值应该发生变化。

例如,假设我分别单击玩家 1 和玩家 2 中的 Danny 和 John。这两个名字应该突出显示,变量应该为player1_id =“Danny”和player2_id =“John”。如果我改变主意并单击“玩家 2”列上的 Mary,Mary 应该突出显示,John 应该失去突出显示,player2_id 应该更改为“Mary”

到目前为止,我设法只获得突出显示的部分(但是当我单击多个名称时,所有名称都保持突出显示)。有人能给我指出正确的方向吗?

Here是我到目前为止所拥有的 JSFiddle 代码

最佳答案

试试这个:https://jsfiddle.net/dunsondog109/behcgwLf/7/

function inputClickHandler(e){
    e = e||window.event;
    var all = document.getElementsByTagName("td");
    var tdElm = e.target||e.srcElement;
    var tdIndex = tdElm.cellIndex;
    var numberOfColumns = 2;
    if(tdElm.style.backgroundColor == 'rgb(46, 204, 64)'){
        tdElm.style.backgroundColor = '';
    } else {
        for (var i=0;i<all.length;i++) {
            if (i%numberOfColumns==tdIndex%numberOfColumns) {
                // It is in the same column
                all[i].style.backgroundColor = '';
            }
        }
        tdElm.style.backgroundColor = '#2ECC40';
    }
}

您需要先重置您所在列中的所有td,然后再设置被点击的td

关于javascript - 单击两个表格单元格突出显示其内容并将其值存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53641144/

相关文章:

javascript - 如何在一个 html 标签上调用多个 onkeyup 事件

php - 获取数据大于等于今天的日期

php - MySQL 锁定行计时器

jquery - 是否可以增加文本字段中字符之间的水平间距?

javascript - D3 Hive 图突出显示节点及其链接

c# - 如何在 Javascript 中使用模型?

javascript - CSS 变换旋转在 Internet Explorer 11 中不起作用

html - 为什么 IE1 0's "IE8 标准模式与 IE9 的不同?

mysql - 如果 mysql 中存在则删除过程

javascript - JavaScript 中的 Math.max 函数