我希望我的表格将特定文字转换为图片。
我接近解决这个问题的解决方案:If text in a cell contains a specific word then put an image in it
我遇到的问题是表格只会更改第一个文本,如果第二次将“RED”更改为单元格,而不是另一个红色图像,则表示“RED”。
我是编程的新手,并尝试从上面的线程中复制代码,有点像我一样知道它的错误,而不是在同一段落中声明它,但这就是它现在的样子和半工作:)
var allTableCells = document.getElementsByTagName("td");
var yourImage = new Image();
yourImage.src = "red.png";
for (var i = 0;i < allTableCells.length; i++) {
var node = allTableCells[i];
if (node.textContent.trim() === "RED") {
node.textContent = "";
node.appendChild(yourImage);
}
}
var allTableCells = document.getElementsByTagName("td");
var yourImage = new Image();
yourImage.src = "blue.png";
for (var i = 0;i < allTableCells.length; i++) {
var node = allTableCells[i];
if (node.textContent.trim() === "BLUE") {
node.textContent = "";
node.appendChild(yourImage);
}
}
var allTableCells = document.getElementsByTagName("td");
var yourImage = new Image();
yourImage.src = "green.png";
for (var i = 0;i < allTableCells.length; i++) {
var node = allTableCells[i];
if (node.textContent.trim() === "GREEN") {
node.textContent = "";
node.appendChild(yourImage);
}
}
var allTableCells = document.getElementsByTagName("td");
var yourImage = new Image();
yourImage.src = "cyan.png";
for (var i = 0;i < allTableCells.length; i++) {
var node = allTableCells[i];
if (node.textContent.trim() === "CYAN") {
node.textContent = "";
node.appendChild(yourImage);
}
}
var allTableCells = document.getElementsByTagName("td");
var yourImage = new Image();
yourImage.src = "orange.png";
for (var i = 0;i < allTableCells.length; i++) {
var node = allTableCells[i];
if (node.textContent.trim() === "ORANGE") {
node.textContent = "";
node.appendChild(yourImage);
}
}
真的很感激,如果有人可以帮助我,那么每个包含特定文本的新单元格都会获得图像!
答案 0 :(得分:1)
您正在追加相同的DOM元素,因此您最终只会得到一张图片。
将图像元素创建移动到循环中
for (var i = 0;i < allTableCells.length; i++) {
var node = allTableCells[i];
if (node.textContent.trim() === "RED") {
node.textContent = "";
var yourImage = new Image();
yourImage.src = "red.png";
node.appendChild(yourImage);
}
}