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

问题描述 投票:0回答:4

我想使用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()

javascript getelementsbytagname
4个回答
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>

1
投票

尝试这样的事情:

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

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

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


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>
© www.soinside.com 2019 - 2024. All rights reserved.