如何通过没有id,class或jQuery的tagName获取按钮?

时间:2019-04-12 14:55:16

标签: javascript getelementsbytagname

我想使用tagName获取不带id,class或jQuery的按钮文本,并将这些文本写入p标签。我的简单测试代码如下。 希望您了解我正在尝试做的事情。

            <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>

您能帮我完成这段代码吗? 注意:我只有一个功能tagName()

4 个答案:

答案 0 :(得分:1)

尝试这样的事情:

var obj = document.getElementsByTagName("button");

for (let item of obj) {
  item.onclick = function(){
    document.getElementById("result").innerHTML = item.innerHTML;
  }
}

答案 1 :(得分:1)

<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>

答案 2 :(得分:1)

我相信这会做您想要的。它使用了更现代的Javascript,因此不适用于旧版本的IE。

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


<script type="text/javascript">
    function setButtonEvents(){
        let buttons = document.querySelectorAll("button");  // (returns a nodeList, like an array)

        for(let b of buttons){
            // here i want to check which button clicked?
            b.onclick=buttonClicked;
        }

    };

    function buttonClicked(e) {
        document.getElementById("result").innerHTML = e.target.innerHTML;
    }
  setButtonEvents();
</script>

答案 3 :(得分:1)

如果您要根据单击的按钮来更改p标签文本,则可以像这样实现。

<script type="text/javascript">
window.onclick = function(e) {

    var isButton = e.target.tagName;

    if (isButton === "BUTTON") {
      var text = e.target.innerText
      document.getElementById("result").innerHTML = text;
    }
};