10

I want to insert images to the new cell just created. How can I do it? Can anyone guide me in doing it? Here's my code to insertcells:

  <!DOCTYPE html>
    <html>
    <head>
    <script>
    function displayResult()
    {
    var firstRow=document.getElementById("myTable").rows[0];
    var x=firstRow.insertCell(-1);
    x.innerHTML="New cell"
    }
    </script>
    </head>
    <body>
    
    <table id="myTable" border="1">
      <tr>
        <td>First cell</td>
        <td>Second cell</td>
        <td>Third cell</td>
      </tr>
    </table>
    <br>
    <button type="button" onclick="displayResult()">Insert cell</button>
    
    </body>
    </html>

All I want is to insert image in the cell created.

3
  • You can put some text in you td using innerHTML but you can't put there an img tag? Commented Jun 7, 2013 at 7:17
  • @Teemu Yes .. exactly.. Commented Jun 7, 2013 at 10:09
  • I don't quite understand, what's the difference if you wrote "<img src='myImageURL' />" instead of "New cell"? Commented Jun 7, 2013 at 10:38

3 Answers 3

23

You can create the image element and append it to the new cell:

function displayResult()
{
    var firstRow=document.getElementById("myTable").rows[0];
    var x=firstRow.insertCell(-1);
    x.innerHTML="New cell";

    var img = document.createElement('img');
    img.src = "link to image here";
    x.appendChild(img);
}

Beware of building the raw HTML for the image, if you do it that way you'll need to make sure that you escape the src and any other attributes.

Sign up to request clarification or add additional context in comments.

1 Comment

This tool might be useful for escaping html attributes: accessify.com/tools-and-wizards/developer-tools/quick-escape/…
8

Simply set the inner HTML of the new cell to the HTML of an img element, with whatever src or attributes you wish.

function displayResult()
{
    var firstRow=document.getElementById("myTable").rows[0];
    var x=firstRow.insertCell(-1);
    x.innerHTML="<img src='myImageURL' alt='hello'/>";
}

1 Comment

Hey this worked for me! I like the minimal number of lines too.
-1
 function displayResult()
    {
   document.getElementById("myTable").rows[0].innerHTML="your image";
    }

may be this can help,dynamicism can be achieved later on,just try if it works for now?

1 Comment

This displays the name of the image file. It does not put the actual image out there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.