Tips for collapsing table rows in HTML using the td tag

Can the last td be broken down without affecting the tr structure?

<!DOCTYPE html>
<html>
<head>
<style>
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}
</style>
</head>
<body>

<h2>HTML Table</h2>

<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
     <td>This I need to move down onto another row</td>
  </tr>
</table>

</body>
</html>

I want the last td of each row to be moved down and fill the entire space. It should not appear on the same row as the other tds.

Answer №1

It took me a moment to recall how to accomplish this task without relying on jquery, but here is a pure JavaScript solution.

var table = document.getElementsByTagName('table')[0];

var rows = table.getElementsByTagName('tr');
console.log(rows.length);

for (const row of rows) {

    var cells = row.getElementsByTagName('td');
  if (cells.length == 4){

    let tr = document.createElement("tr");
    let td = document.createElement("td");
    td.setAttribute('colspan', 3);
    td.innerHTML = cells[3].innerHTML;
    tr.appendChild(td);
    row.after(tr);
    cells[3].remove();
    
  
  }

}
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}
<html>

<body>

<h2>HTML Table</h2>

<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
     <td>This Is Required Below</td>
  </tr>
  <tr>
    <td>Acme</td>
    <td>Bobby Brown</td>
    <td>USA</td>
     <td>Moving to Another Row</td>
  </tr>
</table>

</body>
</html>

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Utilize SVG background with transparent text for a clear view of surrounding content

I'm looking for a way to overlay a video with a semi-transparent black div that includes text and a button, while still allowing users to see the video playing behind it. I previously achieved this using a PNG image but now need to apply the effect to ...

Utilize Selenium with Python to automate checkbox selection

I'm in the process of mastering Selenium with Python and developing an autofill application. One feature I am trying to implement is checking a box on a form to indicate that I have read the terms and conditions. However, I am struggling to identify ...

Error in THREE.js: Failed to retrieve object at http://192.168.8.104:8080/[object%20Object] (Error code: 404) - Module: three.module.js

During my attempt to create a text loader in THREE.js, I encountered an error instead of getting the expected text output. three.module.js:38595 GET http://192.168.8.104:8080/[object%20Object] 404 (Not Found) I made various efforts to resolve this error ...

Steps to Make a White Content Box on Top of an Image Background using HTML/CSS

I am currently struggling with overlaying a white box on top of my background image in order to have my text inside the box for a more visually appealing look. Despite trying to add CSS code like this: .white-box { position: absolute; background-c ...

The height of divs spontaneously changes after resizing without any instructions

I am developing a jQuery function to vertically center an element. The function is triggered on load and here is the code: JQuery var $window_height; function Centerize(content) { content.css('margin-top', (($window_height - content.height( ...

Issue encountered while trying to display images next to each other using only HTML and CSS

https://i.sstatic.net/OAjCG.jpg I am facing an issue with the vertical space between the top and bottom rows of my portfolio. There seems to be some unwanted space in the rows that I cannot account for. It doesn't seem to be a margin or padding withi ...

Managing a PUT request received from an HTML form utilizing the Bottle framework

Currently utilizing Bottle, I am facing the challenge of handling a PUT request from HTML to update a nested dictionary. While front-end validation is an option, it is necessary for me to complete this task for an assignment. Below is the dictionary conta ...

Background Image Troubling CSS Issue

I am having an issue with adding a background image to my site header. The main content should cover part of the image, but even after setting the z-index, it's not working as expected. You can view the website here Any ideas why this might be happe ...

Guide on making a color legend with JavaScript hover effects

On my website, there is a dynamic element that displays a table when values are present and hides it when there are no values. The values in the table are color-coded to represent different definitions. I wanted to add hover text with a color key for these ...

The not() function only applies to immediate children and does not impact any nested

There is a very odd behavior with the "not()" css selector that I am experiencing. Here is my simplified code snippet: <div id="mapDiv" class="mapDiv mapDiv1"> pippo <div class="gm-style">pluto</div> </div> <div id="ma ...

Customize MUI Tabs to resemble the design of Bootstrap Nav Tabs

Looking to customize Material UI Tabs to resemble Bootstrap Tabs. Made significant changes, but struggling with removing the border-bottom on the activeTab. In Bootstrap, they use marginBottom: -1px on the active tab, but it doesn't work for me. Any s ...

What is the best way to include {text} (without using quotation marks) in a PHP array for the Google Chart API?

Based on the guidance from Uberfuzzy, I made some updates: $a = '{"role": "tooltip","p": {"html": true}}'; $aa = json_decode($a,true); $data[0] = array_merge(array(product),$info,array($aa)); Have a look at this link for details on customizi ...

The addition of one-page navigation in Angular 7 seems to be experiencing some glitches

I recently added a new menu option to my Angular 7 project, but it's not functioning correctly. I used Bootstrap 4 and followed this example from here. Can anyone help me figure out the correct way to implement this? Check out the sample on StackBlit ...

Tips for fading out two elements after completing a drag and drop action

Visit this Codepen for more examples - Codepen I have been developing a drag and drop feature in my application. Once the item is dropped, it transitions from red to green and fades out smoothly. The droppable element behind the draggable should also fad ...

Getting the most out of fonts with Webpack sass-loader

I recently set up a custom font in my project like this: $font-path: '~@/assets/fonts/'; @font-face { font-family: 'mainFont'; font-weight: 300; font-style: normal; src: url('#{$font-path}mainFont/mainFont.eot&apos ...

Is it feasible to integrate "tutorials" in HTML and CSS?

I have a vision to incorporate a "guider" into my application, a dialog box designed to help guide users by visually introducing them to significant features: Specifically, I am interested in functionalities like attaching the guider to an element on the ...

How to divide a string by space after a specific character count using Javascript

I've been working on a tool that can divide input text into chunks based on a specific character count without breaking words in the process. Currently, I have set it to split the text after 155 characters. Even after conducting extensive research, ...

Default Documents on Login.aspx are being displayed even though it hasn't been specified in the web.config file

When I decided to move my website from the built-in web server (Cassini) to IIS, I encountered an issue with my Login.aspx page. The web.config file was showing an error "The requested page cannot be accessed because the related configuration data for the ...

What is the best way to wrap text and move the lines up without affecting the bottom margin?

When the text length increases in the first image, it shifts upwards similar to what you see in this image. How can I achieve this effect? The use of "word-wrap" causes the line to break and move to the next line, which is not what I want. In the code sn ...

Create a typing effect in Javascript that mimics the user's input

Trying to simulate a typing effect with the sentence extracted from user input using JavaScript, but encountering some issues. Successfully capturing and displaying the input in the console with console.log(), however, incorporating the typing effect func ...