<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title></title>
<style type="text/css">
.chkOn { background-color: #ff0; }
.chkOff { background-color: #fff; }
</style>
<body>
<table>
<tr class="chkOff">
<td>1</td>
<td>東京</td>
<td><input type="checkbox" name="myvalue" value="1"></td>
</tr>
<tr class="chkOff">
<td>2</td>
<td>神奈川</td>
<td><input type="checkbox" name="myvalue" value="2"></td>
</tr>
<tr class="chkOff">
<td>3</td>
<td>千葉</td>
<td><input type="checkbox" name="myvalue" value="3"></td>
</tr>
</table>
<div id="p" class="ab ef ij">euwuiacbhuibac</div>
<script type="text/javascript">
var TokenList = (function ( cut, has, join ) {
return function ( type ) {
return {
'contains':
function ( e, name ) {
if( !has( e[ type ], name ) ) {
var keys = cut( name );
var cnt = 0, key;
while( key = keys[ cnt++ ] )
if( has( e[ type ], key ) )
return false;
}
return true;
},
'add':
function ( e, name ) {
var keys = cut( name );
var buf = [ ], cnt = 0, key;
while( key = keys[ cnt++ ] )
has( e[ type ], key ) || buf.push( key );
e[ type ] += ( e[ type ] ? '\u0020': '' ) + buf.join( '\u0020' );
return e[ type ];
},
'remove':
function ( e, name ) {
var keys = cut( e[ type ] );
var buf = [ ], cnt = 0, key;
while( key = keys[ cnt++ ] )
has( name, key ) || buf.push( key );
return e[ type ] = buf.join( '\u0020' );
},
'toggle':
function ( e, name ) {
var keys = cut( name );
var aBuf = [ ], dBuf = [ ];
var key, cnt = 0;
while( key = keys[ cnt++ ] )
has( e[ type ], key ) ?
dBuf.push( key ): aBuf.push( key );
e[ type ] += ( e[ type ] ? '\u0020': '' ) + aBuf.join( '\u0020' );
dBuf.length && this.remove( e, dBuf.join( '\u0020' ) );
return e[ type ];
},
'length':
function ( e ) {
return cut( e[ type ] ).length;
},
'item':
function ( e, num ) {
var a = cut( e[ type ] ) || [ ];
return 'undefined' === typeof num ? a: a[ num ];
}
};
};
})(
function (s) { return ('' + s).split( /\u0020+/ ); },
function (s, n) { return -1 < ( '\u0020' + s +'\u0020' ).indexOf( '\u0020' + n + '\u0020' ); },
function (a) { return a.join( '\u0020' ); }
);
var eventHandler = (function ( CSS, get ) {
return function ( evt ) {
var e = evt. target ;
var p;
if( e.name == 'myvalue' ) {
p = get( e, 'nodeName', 'TR' );
if( p ) CSS.toggle( p, 'chkOn chkOff' );
}
};
})(
TokenList( 'className' ),
function ( n, t, v ) {
return n ? (v == n[t]) ? n: arguments.callee( n.parentNode, t, v): null;
}
);
document.
addEventListener( 'click', eventHandler, false );
</script>