/    Sign up×
Community /Pin to ProfileBookmark

Advanced table highlighting

I have a table with 24 cells per row and would like to highlight only half of a row when the mouse hovers over it (If I hover on cell 1-12, highlight the first twelve. If I hover on cell 13-24, highlight the last twelve). There has got to be a better way to do it than this.

Sample table:

[CODE]<table>
<tr>
<td onmouseover=’HiOn1(this)’ onmouseout=’HiOff1(this)’>blah1</td>
<td onmouseover=’HiOn2(this)’ onmouseout=’HiOff2(this)’>blah2</td>
<td onmouseover=’HiOn3(this)’ onmouseout=’HiOff3(this)’>blah3</td>
<td onmouseover=’HiOn4(this)’ onmouseout=’HiOff4(this)’>blah4</td>
<td onmouseover=’HiOn5(this)’ onmouseout=’HiOff5(this)’>blah5</td>
<td onmouseover=’HiOn6(this)’ onmouseout=’HiOff6(this)’>blah6</td>
<td onmouseover=’HiOn7(this)’ onmouseout=’HiOff7(this)’>blah7</td>
<td onmouseover=’HiOn8(this)’ onmouseout=’HiOff8(this)’>blah8</td>
<td onmouseover=’HiOn9(this)’ onmouseout=’HiOff9(this)’>blah9</td>
<td onmouseover=’HiOn10(this)’ onmouseout=’HiOff10(this)’>blah10</td>
<td onmouseover=’HiOn11(this)’ onmouseout=’HiOf11(this)’>blah11</td>
<td onmouseover=’HiOn12(this)’ onmouseout=’HiOff12(this)’>blah12</td>

<td onmouseover=’HiOn1(this)’ onmouseout=’HiOff1(this)’>blah13</td>
<td onmouseover=’HiOn2(this)’ onmouseout=’HiOff2(this)’>blah14</td>
<td onmouseover=’HiOn3(this)’ onmouseout=’HiOff3(this)’>blah15</td>
<td onmouseover=’HiOn4(this)’ onmouseout=’HiOff4(this)’>blah16</td>
<td onmouseover=’HiOn5(this)’ onmouseout=’HiOff5(this)’>blah17</td>
<td onmouseover=’HiOn6(this)’ onmouseout=’HiOff6(this)’>blah18</td>
<td onmouseover=’HiOn7(this)’ onmouseout=’HiOff7(this)’>blah19</td>
<td onmouseover=’HiOn8(this)’ onmouseout=’HiOff8(this)’>blah20</td>
<td onmouseover=’HiOn9(this)’ onmouseout=’HiOff9(this)’>blah21</td>
<td onmouseover=’HiOn10(this)’ onmouseout=’HiOff10(this)’>blah22</td>
<td onmouseover=’HiOn11(this)’ onmouseout=’HiOf11(this)’>blah23</td>
<td onmouseover=’HiOn12(this)’ onmouseout=’HiOff12(this)’>blah24</td>
</tr>
</table>[/CODE]

Sample functions:

[CODE]function HiOn1(x){
x.style.backgroundColor=”gray”
x.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”gray”
}

function HiOff1(x){
x.style.backgroundColor=”white”
x.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
x.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.backgroundColor=”white”
}[/CODE]

…and so on, to make 24 functions of the same size, fitted for each cell… 😮

to post a comment
JavaScript

2 Comments(s)

Copy linkTweet thisAlerts:
@mrhooNov 21.2006 — Use the row and column grouping elements:

row groups:

thead, tfoot,tbody

column groups: colgroup,col

And the cols and scope attributes of table cells

http://www.w3.org/TR/html4/struct/tables.html
Copy linkTweet thisAlerts:
@TNOauthorNov 21.2006 — Thanks for the suggestion, but I ended up abstracting the idea:

[CODE]
function h1(obj){
var x=obj.parentNode.getElementsByTagName("TD")
for (i=1;i<13;i++){
x[i].style.backgroundColor="gray";
}
}
function l1(obj){
var x=obj.parentNode.getElementsByTagName("TD")
for (i=1;i<13;i++){
x[i].style.backgroundColor="white";
}
}
function h2(obj){
var x=obj.parentNode.getElementsByTagName("TD")
for (i=13;i<25;i++){
x[i].style.backgroundColor="gray";
}
}
function l2(obj){
var x=obj.parentNode.getElementsByTagName("TD")
for (i=13;i<25;i++){
x[i].style.backgroundColor="white";
}
}
[/CODE]


[CODE]
tr>
<td>+</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">1</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">2</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">3</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">4</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">5</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">6</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">7</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">8</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">9</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">10</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">11</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">12</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">13</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">14</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">15</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">16</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">17</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">18</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">19</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">20</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">21</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">22</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">23</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">24</td>
</tr>

<tr>
<td>+</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">1</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">2</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">3</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">4</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">5</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">6</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">7</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">8</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">9</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">10</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">11</td>
<td onmouseover="h1(this)" onmouseout="l1(this)">12</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">13</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">14</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">15</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">16</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">17</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">18</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">19</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">20</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">21</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">22</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">23</td>
<td onmouseover="h2(this)" onmouseout="l2(this)">24</td>
</tr>

Joy to the world...
[/CODE]
×

Success!

Help @TNO 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.19,
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,
)...