Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6344087
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T20:34:12+00:00 2026-05-24T20:34:12+00:00

Initially I asked this Question and written my own plugin to achieve the same,But

  • 0

Initially I asked this Question and written my own plugin to achieve the same,But i am facing very strange issue regarding to css of table.
After applying the plugin table cells borders are getting dis-sorted.

jsFiddle of the problem: Problem demo

In fiddle you can see that after first cell of the first tr, the header border line and table border line don’t line up. I want the border line of thead cells and td cells to line up.
Can anyone tell me how to achieve that?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T20:34:12+00:00Added an answer on May 24, 2026 at 8:34 pm

    Lets start by doing a bit of a clean up of the code you posted so I can actually read your code and maintain a firm grasp on reality while we go down this rabbit hole.

    If you write clean code, your problems will be exceptionally easier to see.

    So lets clean it up and watch as all the problems here reveal themselves.

    Step one: Your jsFiddle sets it to run "onDomReady," which basically means you’ve got $(document).ready(...) calling all the code in the box, which is fine, except you’re got another got $(document).ready(...) inside there. Lets change that.

    Step two: Lets add some white space and proper indentation in there, and stop using these one letter variable names.

    {} are scope brackets, they should indent, not cover everything, they let us know what part of scope something is in.

    Don’t write .each() loops on one line, this adds no value and makes your code confusing to read.

    $t should be called something meaningful, lets try element, because it holds the $(this) element, which is the active element you’re working with.

    w should be called something meaningful, but since you only use it twice I’m just going with element.width().

    o needs to be less ambiguious, lets go with obj.

    Step three: Selection structures

    if(typeof(i)=='number')o.height=i;
    else if(typeof(i)=='object')o=i;
    else if(typeof(i)=='undefined')o={height:300}
    

    Break that up, make it readable. Saving lines doesn’t make you a better program, writing clean and easily understandable code will.

    Why not use the switch-case statement?

        switch (typeof(i)){
            case "number":
                o.height=i;
                break;
            case "object":
                o=i;
                break;
            case "undefined":
                o={height:300};
                break;
        }
    

    Step four: Don’t in-line styles. Just don’t. There’s no reason to do it, and it makes everyone’s life harder.

    Instead, lets just place the styles gently into the style sheet where it belongs, and make the parent=$('...') line look like parent=$('<div><div></div></div>').appendTo('body');.

    Step five: Closure doesn’t pass any value to arguments

    After a bit of clean up, we see this block of code:

    self.width(self.width() - 
        function(width){
            var parent,child;
            if(width===undefined){
                parent=$('<div><div></div></div>').appendTo('body');
                child=parent.children();
                width= (child.innerWidth()) - (child.height(99).innerWidth());
                parent.remove();
            }
            return width;
        }()
    );
    

    Okay, that’s a problem. Lets cut out a few lines to point out the problem here:

    self.width(
       self.width() - 
        function(width){
            /*...*/
            if(width===undefined){
                /*...*/
            }
            return width;
        }()
    );
    

    So, a quick refresher on this pattern you have here:

    (function(arg1){
        /*code*/
    })(data);
    

    Data gets passed to arg1. Arg1 declaires a variable in the scope local to that function, it doesn’t get anything from outside. Outside data is passed in through the set of () that call the function, which your code had left abandoned. Think of it this way:

    var msg = function(text) {
        alert(text);
    };
    

    Then you call it as…

    msg("hello world");
    

    What your closure is doing is almost the same thing, except where you define your function, you also call it. Thus…

    (function(text) {
        alert(text);
    })("hello world");
    

    So, you need to pass a value of some sort into there, other wise this whole thing is always undefined. Lets do that. What are we passing? I have no way to be sure. This is why programmers need to add comments to their code.

    Step six: Comment your code so people other than yourself will look at this code and have not a damn clue what you truthfuly wanted to do, and can only guess. It’s like you posted a 200 point bounty and didn’t bother helping people who want to help you. Why are you doing this to yourself, dude? Why couldn’t you just go //This is what this does to give me a hint? What did I ever do to you?

    Step Seven: Lets see if we can make the JS changes work with the JS Fiddle

    Great odin… that HTML’s 2000 lines long?

    Okay, I’m working with pastebin here for the sake of saving space in the post here.

    Alright, you started off with this: http://pastebin.com/xjmm4cev

    You’re using a lot of no-wrap, and putting classes onto individual elements. You shouldn’t have to do this on each HTML element, CSS takes care of that very effectively, so lets go ahead and just rip out all the nowrap=nowrap and class="header" stuff (we’ll put it back in a moment, but only ONE per group, not each element).

    Then lets get rid of the useless blank lines.

    Lets run this through HTML tidy and get it nice and indented correctly.

    http://pastebin.com/uHtSZ4h5

    Much easier to read over. Okay, so what do we see here? Well, it looks like you keep going in circles, cutting and pasting the same thing again and again. You also in-line javascript such as using onchange and onclick attributes. This is generally an awful thing to do to your code, and makes it hard to maintain (as I’m sure you’ve seen with this 2000+ line beast of cut+paste 27 times in a row).

    So, lets take a look here:

    1. elements, not inside a form
    2. Elements in a table that are outside of rows, but not head/body/footer sections of a table
    3. Code that’s a huge pain to maintain because it keep going in circles, if you need to change this, you’re basically screwed.

    Lets fix all that.

    1. We’re going to use events in the tags, rather than in-line things. So, all of those in-line onchange and click attributes get the boot.
    2. All of these inputs that are just floating around need to get put into a form, and taken out of this place in tables that only rows or table sections belong in.
    3. Figure out how we can not have excessive input elements, if we can help it.
    4. What the heck is the )="" that you have on every input button? Deleted.

    So, here’s all of your hidden boxes: http://pastebin.com/LXZSkvyf which I’ve removed, because we don’t have a anywhere.

    And here’s what the code looks like without all of these weird things in it: http://pastebin.com/MiaJTGpb

    Much more readable, but still not quite there.

    Step 8: What can you do to make the HTML of the table work better?

    1. You’re using Thead and Tbody, and that’s good.
    2. You’re using attributes for things like cellpadding, that’s bad.
    3. You’ve given each body row an ID. I don’t feel you needed to do this, but it’s not always bad. However, I’ll show you how you could work without it.
    4. You give some selects a select-box class, but it’s nowhere in the css. I’ve removed it.
    5. You give a title attribute to the selects that says "option_value". The title attribute is generally used to make a tool-tip popup when you leave the mouse over something. I’m not sure what you’re going to do here, but that’s bound to confuse your user. I’d highly suggest giving something better than option_value in that place.
    6. You keep using the ID Submit_FMS_AddDelivery. HTML ID tags are meant to be unique, and used only once on one element. You’ve got it 27 times, that’s bad. I don’t think you need an ID on it, so I’ve removed it.
    7. You’ve also got input-btn going on, I’m removing it, because you haven’t shown it’s used anywhere.
    8. You probably don’t need any of these ID tags on select and TR to be honest, so I’m pulling them.

    What’s that look like? Basically, you’ve got what’s almost just the data, in it’s nice pure form. That’s good. http://pastebin.com/UNS6CAtb

    Step 9: What were you trying to do?

    Lets step back and take a look here.

    All you really wanted to do was keep a fixed header, but you’ve ended up doing a lot of JavaScript hacks and manipulating the DOM in a lot of places. We need to stop doing this. Is there a simpler way to do what you want?


    I’ll have to expand on how to make this function with the rest of your stuff, but I get up for work in a few hours. I’ll update again with more… But we’ll get there.

    Right now, because I haven’t fixed what I took out, it doesn’t look right. But I’m tired.

    So, here’s where we are so far: http://jsfiddle.net/5C6z7/
    Plus those inputs we took out (and will be going back in later, in a different way)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Danny initially asked this question in response to a recent Scott Hanselman post: Who
This question seems to have been asked many times in many different forms but
I guess this was asked before, but I could not find any similar question.
I asked a question related to this one previously but I need to know
I hope that this question has not been asked elsewhere, but I'm having difficulty
This is a more detailed version of the same question asked yesterday. I have
I know this question has already been asked but I am in urgent need
I know this question has been asked before but I still haven't seen a
I asked this question on the jQuery Datatable forum but it wasnt much help.
Apologies if this question has been asked. I couldn't find it, but if it

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.