What are the drawbacks of accessing DOM elements directly by ID?

后端 未结 3 1764
孤街浪徒
孤街浪徒 2020-12-19 19:54

Today I stumbled upon the possibility to access a DOM element in Javascript simply by its id e.g. like this:

elementid.style.backgroundColor = \"blue\"


        
相关标签:
3条回答
  • 2020-12-19 20:36

    It’s not a part of any standard. Besides, simple variables can be overwriten. Var content could be redeclared in any place of your script, or external library (and, yes, I know global variables are evil, but ppl still use them…) and your script will break.

    And, naturally, you cannot use IDs like alert or document etc.

    0 讨论(0)
  • 2020-12-19 20:37

    You should also be concerned about name space. Right now you're treating it as if it's a variable in the global name space, and you would have to trust neither you nor any libraries that you include declare any global variables with the same name as DOM id's. The same goes for your highlight function.

    Also while id's with dashes are perfectly valid, those would be inaccessible via this method.

    e.g. <div id="container-wrapper"><div id="container"> ... </div></div>

    would become container-wrapper.style.color which would then try to subtract wrapper.style.color from container.

    0 讨论(0)
  • 2020-12-19 20:46

    It is propriety Microsoft gubbins. It doesn't work in lots of browsers — especially in standards mode (and you want standards mode to avoid quirks mode inconsistencies such as IE getting width wrong).

    0 讨论(0)
提交回复
热议问题