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