将图标添加到特定表列

问题描述:

我在HTML中有一个2行表。我想要做的是添加一个图像到一列,如果一定条件得到满足。例如,如果td文本是“苹果”,那么我想在它旁边添加一个苹果图像。如果td文本是“橙色”,那么我想在它旁边添加一个橙色图像。将图标添加到特定表列

这是我到目前为止有:

<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-rc1/jquery.min.js"></script> 
</head> 
<body> 

    <table class="table table-responsive"> 
     <thead> 
     <tr> 
      <th>Number</th> 
      <th>Name</th> 
      <th>Type</th> 
     </tr> 
     </thead> 
     <tbody> 
      <tr> 
      <td>0x3432</td> 
      <td>Fruit1</td> 
      <td class="demo">apple</td> 
      </tr> 
      <tr> 
      <td>0x34762</td> 
      <td>Fruit2</td> 
      <td class="demo">orange</td> 
      </tr> 

     </tbody> 
    </table> 

    <script> 

    if (document.getElementsByClassName("demo").innerHTML === "apple") { 
     document.getElementsByClassName("demo").innerHTML = "<img src='apple.png' style='display: inline;'><p style='display: inline;'> Apple</p>"; 
    } 

    if (document.getElementsByClassName("demo").innerHTML === "orange"){ 
     document.getElementsByClassName("demo").innerHTML = "<img src='orange.png' style='display: inline;'><p style='display: inline;'> Orange</p>"; 
    } 

    </script> 

    </body> 
    </html> 

这将导致以下:

enter image description here

我不知道为什么图标不显示在苹果和桔子旁边。

什么,我认为是错误的:

我认为我需要一个for循环这不是一个if语句,因为如果语句运行一次,但我不知道我怎么会写这个。

UPDATE: 由于我忘记了id必须是唯一的,因此更新了class的id。

你需要将它包装在一个foreach循环中,否则它只会检查第一个。

此外,请记住ID必须是唯一的,所以您可以使用一个类来代替

固定使用类而不是ID:

<script> 
[].forEach.call(document.getElementsByClassName("demo"), function (el) { 
    if (el.innerHTML === "apple") { 
     el.innerHTML = "<img src='apple.png' style='display: inline;'><p style='display: inline;'> Apple</p>"; 
    } else if (el.innerHTML === "orange"){ 
     el.innerHTML = "<img src='orange.png' style='display: inline;'><p style='display: inline;'> Orange</p>"; 
    } 
}); 
</script> 
+0

你能告诉我在foreach会是什么样子?当你回答同样的问题时,我正在更新我的问题。我知道它需要,但我不知道如何写它。我假设td.foreach(function(){if语句}); – Jubl

+0

你有,更新到类 – LordNeo

+0

我无法理解代码,所以让我知道我错了。您正在使用空数组([]),因此您可以访问forEach方法(因此您不必输入“Array.prototype.forEach.call”)。接下来,您使用call方法将注意力从空数组引向demo类,然后传递一个执行条件语句的回调函数。 – Jubl