Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript—为元素分配新ID_Javascript_Css_Properties - Fatal编程技术网

Javascript—为元素分配新ID

Javascript—为元素分配新ID,javascript,css,properties,Javascript,Css,Properties,我对Javascript非常陌生,正在努力研究它的实际工作方式。我似乎找不到这个问题的答案 我创建了一个表格,并给每个表格单元格一个唯一的ID。我还给每个单元格一个css背景色。使用Javascript,我如何找出每个单元格的背景颜色?如何实际访问每个单元格的属性 谢谢 Dave对此有两个部分: 获取元素 获取指定给它的颜色 获取元素 如果知道单元格ID,可以使用document.getElementById: var element = document.getElementById("the

我对Javascript非常陌生,正在努力研究它的实际工作方式。我似乎找不到这个问题的答案

我创建了一个表格,并给每个表格单元格一个唯一的ID。我还给每个单元格一个css背景色。使用Javascript,我如何找出每个单元格的背景颜色?如何实际访问每个单元格的属性

谢谢
Dave对此有两个部分:

  • 获取元素

  • 获取指定给它的颜色

  • 获取元素 如果知道单元格ID,可以使用
    document.getElementById

    var element = document.getElementById("the-id");
    
    如果您希望对单元格上发生的事件(例如,
    单击
    )进行响应,则可以使用事件处理程序。例如,假设该表具有
    id
    “我的表”

    它钩住表上的
    click
    事件(因此您不必在每个单元格上钩住它),然后当点击到达表时,找到点击在到达表的过程中经过的
    td
    (如果有)

    注意:旧版本IE(IE8及更早版本)没有
    addEventListener
    ,它们有微软的前身,
    attachEvent
    。如果需要,演示如何解决此问题

    获取颜色
    如果直接在元素上指定颜色,请通过
    style
    属性(
    这取决于你如何分配颜色。你为什么不发布一些HTML,以便人们能够提供准确的答案?嗨,看来你在这里尝试的就是解决方案..FWIW,给每个单元格一个唯一的ID可能不是一个理想的设计选择,尽管这自然取决于你在做什么。我试图做一个简单的选择颜色选择器。只有8种颜色可供选择,所以我用一行8个单元格制作了一张桌子。我给每个单元格一个css背景颜色,但我只是无法确定如何让javascript知道那个颜色是什么。哇,就是这样,这正是我想要的。我还没有遇到GetComputed样式,所以难怪我能做到不要这样做。我一直在尝试使用getElementbyID获得颜色。非常感谢。
    
    document.getElementById("my-table").addEventListener("click", function(event) {
        var element = event.target;
        while (element && element.tagName !== "TD") {
            if (element === this) {
                // No cell was clicked
                return;
            }
            element = element.parentNode;
        }
    
        // ...use element here
    });
    
    var color = element.style.color;
    
    var color = getComputedStyle(element).color;
    
    if (!window.getComputedStyle) {
        window.getComputedStyle = function(element, pseudo) {
            if (typeof pseudo !== "undefined") {
                throw "The second argument of getComputedStyle can't be polyfilled";
            }
            return element.currentStyle;
        };
    }