Javascript 如何使用VANILLA JS向嵌套的Dom元素添加类
这是我的简单代码,我希望当用户单击第一个单元格时,它将变成蓝色背景(仅单击的单元格)。 我认为唯一的问题是我不知道如何选择/引用特定的单元格,因为它是嵌套元素 **如果你能用“按标签名”来做,那就太好了 谢谢你的帮助 Html代码:Javascript 如何使用VANILLA JS向嵌套的Dom元素添加类,javascript,html,css,dom,Javascript,Html,Css,Dom,这是我的简单代码,我希望当用户单击第一个单元格时,它将变成蓝色背景(仅单击的单元格)。 我认为唯一的问题是我不知道如何选择/引用特定的单元格,因为它是嵌套元素 **如果你能用“按标签名”来做,那就太好了 谢谢你的帮助 Html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="widt
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>
<body>
<table>
<tr>
<td>Aviliable</td>
<td>Aviliable</td>
<td>Aviliable</td>
</tr>
<tr>
<td>Aviliable</td>
<td>Aviliable</td>
<td>Aviliable</td>
</tr>
<tr>
<td>Aviliable</td>
<td>Aviliable</td>
<td>Aviliable</td>
</tr>
</table>
<script src="script.js"></script>
</body>
</html>
JS:
使用
event.target
选择要添加样式的单元格
var firstTableRow=document.getElementsByTagName(“tr”)[0];
firstTableRow.addEventListener('click',函数(事件){
event.target.classList.add('blue');
})
通过标记名获取元素效果很好。首先从文档中获取第一行(因此使用document.getElementsByTagName()),现在已经有了第一行,从那里只需要使用getElementsByTagName(您不想搜索文档,只需搜索已经获得的行)
var td=document.getElementsByTagName(“tr”)[0].getElementsByTagName(“td”)[0]
td.onclick=函数(){
td.classList.add(“蓝色”);
}
td{
边框:5px纯黑;
宽度:200px;
高度:200px;
}
蓝先生{
背景颜色:蓝色;
}
文件
可靠的
可靠的
可靠的
可靠的
可靠的
可靠的
可靠的
可靠的
可靠的
我想这对你有用
函数更改颜色(单元格){
var elems=document.queryselectoral(“th”);
[]forEach.call(元素,函数(元素){
//警惕(“你好”);
el.类列表。删除(“蓝色”);
});
cell.classList.add(“蓝色”);
}
.blue{
背景颜色:蓝色
}
1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
这应该只影响第一个单元格,或者用户单击的任何单元格?如果用户两次单击同一单元格,会发生什么情况?还是三次?
td {
border: 5px solid black;
width: 200px;
height: 200px;
}
.blue {
background-color: blue;
}
var td = document.getElementsByTagName("tr")[0].document.getElementByTagName("td")[0];
td.onclick = function () {
td += "blue";
}