[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 269
  • Last Modified:

html javascript change value of cell based on contents of another cell

Hi,

I have an html table which is populated with data from a source that we can't edit.  So, any changes we make need to be when the page loads using javascript.

Let's say I have a table which contains the following rows

<table id=animals>
 <tr>
  <td class=td1 id=status>Available</td>
  <td class=td1 id=sub>Horse</td>
 </tr>
 <tr>
  <td class=td1 id=status>Available</td>
  <td class=td1 id=sub>Donkey</td>
 </tr>
</table>

 Where the content of the table cell with id=sub is "Donkey", I want the status field to say "unavailable" instead of "available".  If the content of the field is anything other than "Donkey" the status field should remain unchanged.
 
 How can this be achieved with javascript given that it has to work on a row by row basis?
 
 TIA
0
yelbow
Asked:
yelbow
  • 3
  • 2
1 Solution
 
dimmergeekCommented:
First of all, you cannot have two objects on the same page with the same id.
Secondly, how are you populating your data table?  What data source are you reading from? Why not just set the correct value when you populate the table?
0
 
yelbowAuthor Commented:
It comes from a 3rd party app, the only part of it which we can edit is the resulting html.  So, we inherit it like this and can only amend the data at that point.
0
 
dimmergeekCommented:
Does the third party app create the table for you including the duplicate id?  If so, I would go back to them and let them know they have a basic HTML issue.  With that data structure, how will you tell one id=sub from another to make the change?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
leakim971PluritechnicianCommented:
Test page : http://jsfiddle.net/PAN56/

function changeStatusFor(content_to_search, newStatus) {
    var animals_table = document.getElementById("animals");
    var cells = animals_table.getElementsByTagName("td");
    var number_of_cells = cells.length;
    for(var i=0;i<number_of_cells;i++) {
        var cell = cells[i];
        var cell_content = cell.innerHTML;
        if(cell_content == content_to_search) {
            var row = cell.parentNode;
            var cell_status = row.getElementsByTagName("td")[0];
            cell_status.innerHTML = newStatus; 
        }
    }
}

window.onload = function() {
    changeStatusFor("Donkey","unavailable");
    changeStatusFor("Horse","unbelievailable");
}

Open in new window

0
 
yelbowAuthor Commented:
They do, but we can amend that too (though I will mention it to them).

If they had unique IDs would it be possible?

What if the fields had no ID at all?
0
 
yelbowAuthor Commented:
Thanks!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now