/    Sign up×
Community /Pin to ProfileBookmark

Hi any help please

I am trying to set xxes in the rows under the first 2 columns in a table. I can set the xes fine in the rows under the first 2 columns but because some of the <td> in the rows that I want to set the xes got rowspan and colspan it end up setting xes in others coluns of the table. I am not being able to track the cells in those rows so I can set the xes only in the right rows under the right columns. the main goal is to set an accessibility attribute for each of those cells I need to somehow keep track of the rowspan’s to know the right cells to check.

Does anyone knows how or did something similar?

Thanks for any help.

to post a comment
JavaScript

3 Comments(s)

Copy linkTweet thisAlerts:
@Typhoon101Mar 30.2007 — Can we see the code you have so far. It not only helps to see how far you have got, but also can clarify exactly what you require.
Copy linkTweet thisAlerts:
@bamabamauthorMar 30.2007 — Ok here is the code I have: if you run the html the xes are printed in the lunch and others coluns because some of them contain rowspan and colspan but I cant manged to have then printed only in the rows under the Country and City coluns?
[CODE]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>TESTING.html</TITLE>
<script language="JavaScript" type="text/javaScript" src="js/prototype.js"></script>
<script language="Javascript" type="text/javascript">
document.getElementsByClassName = function(className, parentElement) {
if (Prototype.BrowserFeatures.XPath) {
var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
return document._getElementsByXPath(q, parentElement);
} else {
var children = ($(parentElement) || document.body).getElementsByTagName('*');
var elements = [], child;
for (var i = 0, length = children.length; i < length; i++) {
child = children[i];
if (Element.hasClassName(child, className))
elements.push(Element.extend(child));
}
return elements;
}
};

function testColum(reportName,reportSummary,colsToAddScope){
var colsToAddScope = 2;
var total = 0;
allNodes = document.getElementsByClassName("ResultsTable");
//alert(allNodes);
for(i=0;i < allNodes.length;i++) {

// Set the scope attribute of the right columns
if (allNodes[i].hasChildNodes()){
// Get the rows of the table
allTrElements = allNodes[i].getElementsByTagName("tr");
for(j=0;j < allTrElements.length;j++) {
// Get the columns of the row
allTdElements = allTrElements[j].getElementsByTagName("td");
for(k=0;k < allTdElements.length ;k++) {
// Set the scope tag for the appropriate columns
if (k<colsToAddScope){

allTdElements[k].setAttribute("scope","row");
allTdElements[k].innerHTML = "x";

}
}
}
}
}
}

</script>
</HEAD>
<BODY>
<P>Place content here.</P>

<table class="TitleTable" cellspacing="0" style="" width="100%">
<tr><td class="TitleCell" style="" title=""></td></tr>
<tr><td class="TitleNameCell" style="" title=""></td></tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="CVView" vid="m:portlet~r:AcctList~v:compoundView!1~v:tableView!1" sid="2ffi9vaj06uola77p8vf1lgusm">
<table class="CVFormatTable" style="width:100%;height:100%;" cellspacing=0 >
<tr>
<td class="CVFormatCell" align=center>
<a href="javascript:void(null)" onclick="IgnoreEvent();" title="Table" name="SectionElements"></a>
<div id="idResultsTableParent">
<table id="saw_6063_2" class="ResultsTable" onmouseover="RTOver(event)" onmouseout="RTOut(event)" title="Results" border="4" cellpadding="2" cellspacing="0">
<tr>
<th>Country</th>
<th>City</th>
<th>Launch</th>
<th>Account Name</th>
<th> Internal Name
</th>
<th scope="col" class="ColumnHdgSortable" >Street Address</th>
<th dir="ltr" scope="col" class="ColumnHdgSortable" >ROW_ID</th>
</tr>
<tr>
<td dir="ltr" scope="row" rowspan="3">BE</td>
<td dir="ltr" rowspan="2">BRUXELLES</td>
<td dir="ltr"></td>
<td dir="ltr">Fortis Banque s #Fortis Bank nv</td>
<td dir="ltr">FORTIS - HQ</td>
<td dir="ltr">Rue Montagne du Parc 3 1GA1E</td>
<td dir="ltr">12KX+FUZ+360</td>
</tr>
<tr>
<td dir="ltr">
</td>
<td dir="ltr" >
Toyota Motor Europe nv#Toyota Motor Europe sa</td>
<td dir="ltr" >TOYOTA - HQ</td>
<td dir="ltr" >Avenue du Bourget 60</td>
<td dir="ltr" >12KX+FQA+4792</td>
</tr>
<tr>
<td dir="ltr" >RONSE</td>
<td dir="ltr" ></td>
<td dir="ltr" >Associated Weavers
Europe nv</td>
<td dir="ltr">Associated Weavers Europe
nv - HQ</td>
<td dir="ltr" >Industriepark Klein
Frankrijk 1</td>
<td dir="ltr" >12KX+FVF+1186</td>
</tr>
<tr>
<td dir="ltr" scope="row" rowspan="7">FR</td>
<td dir="ltr">BAGNOLET</td>
<td dir="ltr"></td>
<td dir="ltr">ETABLISSEMENTS DARTY
ET FILS</td>
<td dir="ltr" >DARTY - HQ</td>
<td dir="ltr" >40 RUE JEAN JAURES
TOUR LEVANT LES MERCURIALE</td>
<td dir="ltr">12KX+2QN+4569</td></tr>
<tr><td dir="ltr">BEAUSEMBLANT</td>
<td dir="ltr">
</td>
<td dir="ltr">NORBERT DENTRESSANGLE</td>
<td dir="ltr">NORBERT DENTRESSANGLE - HQ</td>
<td dir="ltr">LES PIERRELLES</td>
<td dir="ltr">12KX+221+1932</td>
</tr>
<tr>
<td dir="ltr">BONDOUFLE</td>
<td dir="ltr">
</td>
<td dir="ltr" >STIME</td>
<td dir="ltr" >STIME - HQ</td>
<td dir="ltr" >2 ALLÉE DES MOUSQUETAIRES</td>
<td dir="ltr" >12KX-I7LT87</td>
</tr>
<tr><td dir="ltr"

rowspan="2">BOULOGNE BILLANCOURT</td><td dir="ltr">
</td>
<td dir="ltr" >RENAULT</td>
<td dir="ltr" >RENAULT - HQ</td>
<td dir="ltr">13 QU ALPHONSE LE GALLO
013-015</td>
<td dir="ltr" >12KX+22H+2985</td>
</tr>
<tr>
<td dir="ltr">
</td>
<td dir="ltr">THOMSON</td>
<td dir="ltr">THOMSON - HQ</td>
<td dir="ltr">46 QUAI ALPHONSE LE GALLO</td>
<td dir="ltr">12KX+2N4+2188</td>
</tr>
<tr>
<td dir="ltr" >CLERMONT FERRAND</td>
<td dir="ltr" >
</td>
<td dir="ltr" >MANUF FRANC
PNEUMATIQ MICHELIN</td>
<td dir="ltr" >MICHELIN - HQ</td>
<td dir="ltr" >LA COMBAUDE</td>
<td dir="ltr" >12KX+22H+4637</td>
</tr>
<tr>
<td dir="ltr" rowspan="1">CLICHY</td>
<td dir="ltr" value="12KY-N2U76X">
</td>
<td dir="ltr" >CRMP8003TEST2-Looser</td>
<td dir="ltr" >8003TEST2-HQ</td>
<td dir="ltr" >5 BD RAPP</td>
<td dir="ltr" >12KY-N2U76X</td>
</tr>
<tr><td></td><td></td><td></td><td><input type="button" value="setXX" onclick="testColum('frame','summary',2)"></td><td></td>

</tr>
<tr></tr><
</table>
</div>
</BODY>
</HTML>
[/CODE]


thanks for the help
Copy linkTweet thisAlerts:
@bamabamauthorMar 30.2007 — Sorry this is the right code:

[CODE]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>TESTING.html</TITLE>
<script language="JavaScript" type="text/javaScript" src="js/prototype.js"></script>
<script language="Javascript" type="text/javascript">

document.getElementsByClassName = function(clsName){
var retVal = new Array();
var elements = document.getElementsByTagName("*");
for(var i = 0;i < elements.length;i++){
if(elements[i].className.indexOf(" ") >= 0){
var classes = elements[i].className.split(" ");
for(var j = 0;j < classes.length;j++){
if(classes[j] == clsName)
retVal.push(elements[i]);
}
}
else if(elements[i].className == clsName)
retVal.push(elements[i]);
}
return retVal;
}
function testColum(){
var colsToAddScope = 2;
var total = 0;
allNodes = document.getElementsByClassName("ResultsTable");
//alert(allNodes);
for(i=0;i < allNodes.length;i++) {

// Set the scope attribute of the right columns
if (allNodes[i].hasChildNodes()){
// Get the rows of the table
allTrElements = allNodes[i].getElementsByTagName("tr");
for(j=0;j < allTrElements.length;j++) {
// Get the columns of the row
allTdElements = allTrElements[j].getElementsByTagName("td");
for(k=0;k < allTdElements.length ;k++) {
// Set the scope tag for the appropriate columns
if (k<colsToAddScope){

allTdElements[k].setAttribute("scope","row");
allTdElements[k].innerHTML = "x";

}
}
}
}
}

}

</script>
</HEAD>
<BODY>
<P>Place content here.</P>

<table class="TitleTable" cellspacing="0" style="" width="100%">
<tr><td class="TitleCell" style="" title=""></td></tr>
<tr><td class="TitleNameCell" style="" title=""></td></tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="CVView" vid="m:portlet~r:AcctList~v:compoundView!1~v:tableView!1" sid="2ffi9vaj06uola77p8vf1lgusm">
<table class="CVFormatTable" style="width:100%;height:100%;" cellspacing=0 >
<tr>
<td class="CVFormatCell" align=center>
<a href="javascript:void(null)" onclick="IgnoreEvent();" title="Table" name="SectionElements"></a>
<div id="idResultsTableParent">
<table id="saw_6063_2" class="ResultsTable" border="4" cellpadding="2" cellspacing="0">
<tr>
<th>Country</th>
<th>City</th>
<th>Launch</th>
<th>Account Name</th>
<th> Internal Name
</th>
<th scope="col" class="ColumnHdgSortable" >Street Address</th>
<th dir="ltr" scope="col" class="ColumnHdgSortable" >ROW_ID</th>
</tr>
<tr>
<td dir="ltr" scope="row" rowspan="3">BE</td>
<td dir="ltr" rowspan="2">BRUXELLES</td>
<td dir="ltr"></td>
<td dir="ltr">Fortis Banque s #Fortis Bank nv</td>
<td dir="ltr">FORTIS - HQ</td>
<td dir="ltr">Rue Montagne du Parc 3 1GA1E</td>
<td dir="ltr">12KX+FUZ+360</td>
</tr>
<tr>
<td dir="ltr">
</td>
<td dir="ltr" >
Toyota Motor Europe nv#Toyota Motor Europe sa</td>
<td dir="ltr" >TOYOTA - HQ</td>
<td dir="ltr" >Avenue du Bourget 60</td>
<td dir="ltr" >12KX+FQA+4792</td>
</tr>
<tr>
<td dir="ltr" >RONSE</td>
<td dir="ltr" ></td>
<td dir="ltr" >Associated Weavers
Europe nv</td>
<td dir="ltr">Associated Weavers Europe
nv - HQ</td>
<td dir="ltr" >Industriepark Klein
Frankrijk 1</td>
<td dir="ltr" >12KX+FVF+1186</td>
</tr>
<tr>
<td dir="ltr" scope="row" rowspan="7">FR</td>
<td dir="ltr">BAGNOLET</td>
<td dir="ltr"></td>
<td dir="ltr">ETABLISSEMENTS DARTY
ET FILS</td>
<td dir="ltr" >DARTY - HQ</td>
<td dir="ltr" >40 RUE JEAN JAURES
TOUR LEVANT LES MERCURIALE</td>
<td dir="ltr">12KX+2QN+4569</td></tr>
<tr><td dir="ltr">BEAUSEMBLANT</td>
<td dir="ltr">
</td>
<td dir="ltr">NORBERT DENTRESSANGLE</td>
<td dir="ltr">NORBERT DENTRESSANGLE - HQ</td>
<td dir="ltr">LES PIERRELLES</td>
<td dir="ltr">12KX+221+1932</td>
</tr>
<tr>
<td dir="ltr">BONDOUFLE</td>
<td dir="ltr">
</td>
<td dir="ltr" >STIME</td>
<td dir="ltr" >STIME - HQ</td>
<td dir="ltr" >2 ALLÉE DES MOUSQUETAIRES</td>
<td dir="ltr" >12KX-I7LT87</td>
</tr>
<tr><td dir="ltr"

rowspan="2">BOULOGNE BILLANCOURT</td><td dir="ltr">
</td>
<td dir="ltr" >RENAULT</td>
<td dir="ltr" >RENAULT - HQ</td>
<td dir="ltr">13 QU ALPHONSE LE GALLO
013-015</td>
<td dir="ltr" >12KX+22H+2985</td>
</tr>
<tr>
<td dir="ltr">
</td>
<td dir="ltr">THOMSON</td>
<td dir="ltr">THOMSON - HQ</td>
<td dir="ltr">46 QUAI ALPHONSE LE GALLO</td>
<td dir="ltr">12KX+2N4+2188</td>
</tr>
<tr>
<td dir="ltr" >CLERMONT FERRAND</td>
<td dir="ltr" >
</td>
<td dir="ltr" >MANUF FRANC
PNEUMATIQ MICHELIN</td>
<td dir="ltr" >MICHELIN - HQ</td>
<td dir="ltr" >LA COMBAUDE</td>
<td dir="ltr" >12KX+22H+4637</td>
</tr>
<tr>
<td dir="ltr" rowspan="1">CLICHY</td>
<td dir="ltr" value="12KY-N2U76X">
</td>
<td dir="ltr" >CRMP8003TEST2-Looser</td>
<td dir="ltr" >8003TEST2-HQ</td>
<td dir="ltr" >5 BD RAPP</td>
<td dir="ltr" >12KY-N2U76X</td>
</tr>
<tr><td></td><td></td><td></td><td><input type="button" value="setXX" onclick="testColum()"></td><td></td>

</tr>
<tr></tr><
</table>
</div>
</BODY>
</HTML>

[/CODE]
×

Success!

Help @bamabam spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.18,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...