【问题标题】:Click All Buttons on Page单击页面上的所有按钮
【发布时间】:2014-09-10 17:54:54
【问题描述】:

我想知道是否有人可以帮助使用简单的 JavaScript 代码来单击页面上具有相同值名称/输入名称的所有按钮?

他们各自分享:

<input name="all" type="submit" value="Do All">

这是按钮的屏幕截图:http://oi61.tinypic.com/2nqblnr.jpg

也许应该制作一个用作“单击全部”按钮的按钮?这将是一个 chrome 扩展(供个人使用),所以我无法真正更改“全部操作”按钮的代码。

我很难在 Google 上找到它,我对 HTML/CSS 很好,但对 JavaScript 来说真的很糟糕。

【问题讨论】:

  • 您可能不想使用 java 来完成这项任务。 Javascript更合适。

标签: javascript html button submit


【解决方案1】:

我想这就是你想要实现的目标:

jsfiddle:http://jsfiddle.net/vqk2V/

使用jquery的.click()[http://api.jquery.com/click/]方法实现。

【讨论】:

    【解决方案2】:

    您想要做的是创建一个类,例如。

    公开课 MyClass{ ........... }

    ..然后创建方法来执行单击按钮时完成的处理。 如果您的方法在您需要该方法的特定按钮中是非静态的,则使用对象调用方法。

    现在您可以创建一个按钮来调用您想要调用的所有方法,它会执行您所要求的操作。

    【讨论】:

      【解决方案3】:

      使用 Java...也许使用 Selenium。但是你可以使用 jquery(javascrpt 的框架),所以代码可以是:

      <scrpipt>
      function ClickAllButtons()
      {
          if($("input[type=button][name='someName']").length > 0)
          {
              $('input[type=button]').each(function(i){
              var $currentButton = $(this);
              $currentButton.click();
              });
          }
      }
      </script>
      

      【讨论】:

        【解决方案4】:

        要单击页面上具有相同名称的所有按钮,您可以使用 getElementsByName() 函数并将其设置为一个变量,该变量将保存 NodeList 中的所有按钮,然后循环遍历 NodeList 并调用 click() 事件每个按钮。

        例如:

           // Get all buttons with the name 'all' and store in a NodeList called 'buttons'
           var buttons = document.getElementsByName('all');
        
            // Loop through NodeList and call the click() function on each button
            for(var i = 0; i <= buttons.length; i++)  
               buttons[i].click();
        

        【讨论】:

        • 请添加说明。您的答案目前正在投票删除。请这样做以避免将来产生误解。
        • 应该会更好:)
        【解决方案5】:

        // Select all buttons with class .btn
        const inputBtns = document.querySelectorAll('[name="all"]');
        // Select click all button
        const clickAllBtn = document.querySelector('.click-all');
        
        // Attach click handler to all input buttons
        for(let i = 0; i < inputBtns.length; i++) {
        	inputBtns[i].addEventListener('click', function() {
          	alert(this.value);
          })
        }
        
        // Click all buttons, when user click .click-all button
        clickAllBtn.addEventListener('click', function() {
          for(let i = 0; i < inputBtns.length; i++) {
           inputBtns[i].click();
          }
        })
        <input name="all" type="submit" value="Do All 1">
        <input name="all" type="submit" value="Do All 2">
        <button type="button" class="click-all">
        click all
        </button>

        【讨论】:

          【解决方案6】:

          假设这些元素中有 href="#show" 或类似的东西,这对我有用

          var buttons = document.querySelectorAll('[href="#show"]');
          
          for(var i = 0; i <= buttons.length; i++)  
             buttons[i].click();
          

          【讨论】:

            【解决方案7】:
            var buttons = document.getElementsByClassName('uArJ5e');
            
                // Loop through NodeList and call the click() function on each button
                for(var i = 0; i <= buttons.length; i++)  
                   buttons[i].click();
            

            这将点击谷歌上的所有按钮;)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-01-11
              • 2022-11-23
              • 1970-01-01
              • 1970-01-01
              • 2016-08-02
              • 1970-01-01
              • 1970-01-01
              • 2013-06-28
              相关资源
              最近更新 更多