如何使用onclick类或标记名将所有按钮链接到另一个页面

时间:2016-06-24 23:42:22

标签: javascript html

我有一个问题,我似乎无法将我页面上的所有按钮链接到另一个页面,它可以使用ID或使用特定元素,例如:document.getElementsByTagName(" button&#34 )[0] .onclick

但是要做document.getElementsByTagName("按钮")。onclick(所以所有按钮) 或者做document.getElementsByClassName(" theButtons")。onclick 不起作用。

我的Javascript代码:

window.onload = function(){
            document.getElementsByTagName("button").onclick = function () {
            location.href = "../index.html";
            };
        };

<button class="theButtons">click me</button>
<button class="theButtons">click me</button>
<button class="theButtons">click me</button>

3 个答案:

答案 0 :(得分:1)

您需要遍历文档中的按钮集合。 window.onload = function(){ var buttons = document.getElementsByTagName('button'); for (var i = 0; i < buttons.length; i++) { var button = buttons[i]; button.onclick = function () { location.href = "../index.html"; }; } } 返回所有匹配元素的集合,因此您必须遍历该数组并分配每个项目的{{1}}。

{{1}}

答案 1 :(得分:1)

这是因为document.getElementsByTagName将返回HTMLCollection,document.getElementById将返回一个DOM元素。 HTMLCollection无法添加任何事件侦听器。

您可以尝试:

  1. 使用for循环遍历数组,向每个click注册button事件处理程序。
  2. 使用event bubbling。在容器上注册一个事件处理程序以侦听其子项上的所有事件。 (建议)。
  3. 希望这有用。

答案 2 :(得分:-1)

另一个选择是使用Jquery click()查看小提琴http://jsfiddle.net/85qLh41a/3/

<button class="theButtons">click me</button>
<button class="theButtons">click me</button>
<button class="theButtons">click me</button>
<script>
  $(".theButtons").click(function() {
    location.href = '../index.html';
  });
</script>

或者这将适用于页面上的所有按钮

<script>
  $("button").click(function() {
    location.href = '../index.html';
  });
</script>