Search code examples
javascriptgetelementsbytagname

How can get button by tagName without id, class or jQuery?


I want to get button text without id, class or jQuery using tagName and write those text into p tag. My simple test code like below. I hope you understand what I am trying to do.

            <button>Button 1</button>
            <button>Button 2</button>
            <p id="result" ></p>


            <script type="text/javascript">
                function tagName(tag){
                    var buttons = document.getElementsByTagName(tag);
                    var totalButton = buttons.length;

                    for(var i=0;i<totalButton;i++){
                        // here i want to check which button clicked?
                    }

                };

                    tagName("button").onclick = function(){
                    document.getElementById("result").innerHTML = tagName("button").innerHTML;
                }
            </script>

Can you help me for completing this code? Note: I have only one function tagName()


Solution

  • <html>
    
    <head>
        <script>
            function tagName(tag) {
                var buttons = document.getElementsByTagName(tag);
                var totalButton = buttons.length;
    
                var r = []
                for (var i = 0; i < totalButton; i++) {
                    // here i want to check which button clicked?
                    r.push(buttons[i])
                }
                return r;
            };
    
            function onLoad() {
                tagName("button").forEach(function (item, idx) {
                    item.addEventListener('click', function () {
                        document.getElementById("result").innerHTML = item.innerHTML;
                    });
                });
            }
    
        </script>
    </head>
    
    <body onload="onLoad()">
        <button>Button 1</button>
        <button>Button 2</button>
        <p id="result"></p>
    
    
        <script type="text/javascript">
    
        </script>
    </body>
    
    </html>