Same javascript variable and html element names are in different namespaces and do not conflict?











up vote
0
down vote

favorite












javascript and html names are in different namespaces and do not conflict?



I mean in the code below "numberInputBox" in html and in javascript contextsare different, or there could be a problem?



<body>

<input name="numberInputBox" type="text" ></td>

<script type="text/javascript">
var numberInputBox = document.getElementById("numberInputBox");
</script>

</body>









share|improve this question


















  • 1




    Yes they dont. You safe.
    – Smollet777
    Nov 19 at 11:04






  • 1




    What exactly do you mean by "html names"? Yes, ids in a document live in their own namespace.
    – Bergi
    Nov 19 at 11:05










  • Actually all ids also become implicit global variables because IE did it, but JS always can override that. There won't be any problem.
    – Bergi
    Nov 19 at 11:07















up vote
0
down vote

favorite












javascript and html names are in different namespaces and do not conflict?



I mean in the code below "numberInputBox" in html and in javascript contextsare different, or there could be a problem?



<body>

<input name="numberInputBox" type="text" ></td>

<script type="text/javascript">
var numberInputBox = document.getElementById("numberInputBox");
</script>

</body>









share|improve this question


















  • 1




    Yes they dont. You safe.
    – Smollet777
    Nov 19 at 11:04






  • 1




    What exactly do you mean by "html names"? Yes, ids in a document live in their own namespace.
    – Bergi
    Nov 19 at 11:05










  • Actually all ids also become implicit global variables because IE did it, but JS always can override that. There won't be any problem.
    – Bergi
    Nov 19 at 11:07













up vote
0
down vote

favorite









up vote
0
down vote

favorite











javascript and html names are in different namespaces and do not conflict?



I mean in the code below "numberInputBox" in html and in javascript contextsare different, or there could be a problem?



<body>

<input name="numberInputBox" type="text" ></td>

<script type="text/javascript">
var numberInputBox = document.getElementById("numberInputBox");
</script>

</body>









share|improve this question













javascript and html names are in different namespaces and do not conflict?



I mean in the code below "numberInputBox" in html and in javascript contextsare different, or there could be a problem?



<body>

<input name="numberInputBox" type="text" ></td>

<script type="text/javascript">
var numberInputBox = document.getElementById("numberInputBox");
</script>

</body>






javascript html






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 at 11:03









caasdads

1176




1176








  • 1




    Yes they dont. You safe.
    – Smollet777
    Nov 19 at 11:04






  • 1




    What exactly do you mean by "html names"? Yes, ids in a document live in their own namespace.
    – Bergi
    Nov 19 at 11:05










  • Actually all ids also become implicit global variables because IE did it, but JS always can override that. There won't be any problem.
    – Bergi
    Nov 19 at 11:07














  • 1




    Yes they dont. You safe.
    – Smollet777
    Nov 19 at 11:04






  • 1




    What exactly do you mean by "html names"? Yes, ids in a document live in their own namespace.
    – Bergi
    Nov 19 at 11:05










  • Actually all ids also become implicit global variables because IE did it, but JS always can override that. There won't be any problem.
    – Bergi
    Nov 19 at 11:07








1




1




Yes they dont. You safe.
– Smollet777
Nov 19 at 11:04




Yes they dont. You safe.
– Smollet777
Nov 19 at 11:04




1




1




What exactly do you mean by "html names"? Yes, ids in a document live in their own namespace.
– Bergi
Nov 19 at 11:05




What exactly do you mean by "html names"? Yes, ids in a document live in their own namespace.
– Bergi
Nov 19 at 11:05












Actually all ids also become implicit global variables because IE did it, but JS always can override that. There won't be any problem.
– Bergi
Nov 19 at 11:07




Actually all ids also become implicit global variables because IE did it, but JS always can override that. There won't be any problem.
– Bergi
Nov 19 at 11:07












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










Given an element with an id or name, browsers will create global JS variables containing references to them.



var numberInputBox = document.getElementById("numberInputBox"); would overwrite that variable. This would not affect the HTML element.



It could only cause problems if some other code attempted to use the global variable and expected it to have its original value (although in this case, the original value is the same as the new value).



In general, it is best to avoid creating global variables so that different scripts don't get in each other's way.



You can use an IIFE to scope them.



(function () {
var numberInputBox = document.getElementById("numberInputBox");
// Do other stuff with numberInputBox here because it is local to this function
}());





share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53373232%2fsame-javascript-variable-and-html-element-names-are-in-different-namespaces-and%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote



    accepted










    Given an element with an id or name, browsers will create global JS variables containing references to them.



    var numberInputBox = document.getElementById("numberInputBox"); would overwrite that variable. This would not affect the HTML element.



    It could only cause problems if some other code attempted to use the global variable and expected it to have its original value (although in this case, the original value is the same as the new value).



    In general, it is best to avoid creating global variables so that different scripts don't get in each other's way.



    You can use an IIFE to scope them.



    (function () {
    var numberInputBox = document.getElementById("numberInputBox");
    // Do other stuff with numberInputBox here because it is local to this function
    }());





    share|improve this answer

























      up vote
      0
      down vote



      accepted










      Given an element with an id or name, browsers will create global JS variables containing references to them.



      var numberInputBox = document.getElementById("numberInputBox"); would overwrite that variable. This would not affect the HTML element.



      It could only cause problems if some other code attempted to use the global variable and expected it to have its original value (although in this case, the original value is the same as the new value).



      In general, it is best to avoid creating global variables so that different scripts don't get in each other's way.



      You can use an IIFE to scope them.



      (function () {
      var numberInputBox = document.getElementById("numberInputBox");
      // Do other stuff with numberInputBox here because it is local to this function
      }());





      share|improve this answer























        up vote
        0
        down vote



        accepted







        up vote
        0
        down vote



        accepted






        Given an element with an id or name, browsers will create global JS variables containing references to them.



        var numberInputBox = document.getElementById("numberInputBox"); would overwrite that variable. This would not affect the HTML element.



        It could only cause problems if some other code attempted to use the global variable and expected it to have its original value (although in this case, the original value is the same as the new value).



        In general, it is best to avoid creating global variables so that different scripts don't get in each other's way.



        You can use an IIFE to scope them.



        (function () {
        var numberInputBox = document.getElementById("numberInputBox");
        // Do other stuff with numberInputBox here because it is local to this function
        }());





        share|improve this answer












        Given an element with an id or name, browsers will create global JS variables containing references to them.



        var numberInputBox = document.getElementById("numberInputBox"); would overwrite that variable. This would not affect the HTML element.



        It could only cause problems if some other code attempted to use the global variable and expected it to have its original value (although in this case, the original value is the same as the new value).



        In general, it is best to avoid creating global variables so that different scripts don't get in each other's way.



        You can use an IIFE to scope them.



        (function () {
        var numberInputBox = document.getElementById("numberInputBox");
        // Do other stuff with numberInputBox here because it is local to this function
        }());






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 19 at 11:08









        Quentin

        633k718531023




        633k718531023






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53373232%2fsame-javascript-variable-and-html-element-names-are-in-different-namespaces-and%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            404 Error Contact Form 7 ajax form submitting

            How to know if a Active Directory user can login interactively

            Refactoring coordinates for Minecraft Pi buildings written in Python