Revision: 47841
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at June 17, 2011 04:14 by MikeAcreman
Initial Code
$('table').ready(function(){
$(this).find('col').each(function(){
if(!$(this).attr('align')=='char')
return false;
align_by = $(this).attr('char');
before_width = 0;
after_width = 0;
char_width = 0;
eq = $(this).index();
table = $(this).closest('table');
table.find('tr').each(function(){
$(this).find('td').eq(eq).each(function(){
$(this).css('position','relative');
$(this).css('white-space','nowrap');
html = $(this).html();
html = html.split(align_by);
if(html.length>1){
$(this).html('<span class="before_char">'+html[0]+'</span><span class="char">.</span><span class="after_char">'+html[1]+'</span>')
char = $(this).find('.char');
left = char.position().left;
width = char.width();
right = $(this).width() - left - width;
before_width = Math.max(left, before_width);
after_width = Math.max(right,after_width);
char_width = Math.max(char_width, width);
}
})
$(this).find('td').eq(eq).each(function(){
align = $(this).css('text-align');
if(align=='left'){
$(this).find('.before_char').css('width',before_width+'px').css('display','inline-block').css('text-align','right');
}else if(align=='right') {
$(this).find('.after_char').css('width',after_width+'px').css('display','inline-block').css('text-align','left');
} else {
if(before_width > after_width){
$(this).find('.before_char').css('width',before_width+'px').css('display','inline-block').css('text-align','right');
$(this).css('text-align','left');
} else {
$(this).find('.after_char').css('width',after_width+'px').css('display','inline-block').css('text-align','left');
$(this).css('text-align','right');
}
}
})
})
})
})
Initial URL
Initial Description
This is probably buggy and certainly not the most efficient way to do it.
Initial Title
jQuery implementation of align=char
Initial Tags
table, jquery
Initial Language
jQuery