1

下面我有一个html代码

<td valign="top" id="UserManagebutton1"><input type="button" value="Add" class="inputbutton">
  <input type="button" value="Delete" class="inputbutton">
  <input type="button" value="Import" class="inputbutton">
  <input type="button" value="Export" class="inputbutton">
  <input type="button" value="Change Status" class="inputbutton">
  <input type="button" value="Purge AD Users" class="inputbutton"></td>

我尝试将它放入我的控制台,但它不起作用。我正在尝试单击添加按钮。

下面是我使用的代码。

document.getElementById('Add').click();

知道为什么它不起作用吗?它与其他人一起工作。

4

5 回答 5

2

利用

<input type="button" id="Add" value="Add" class="inputbutton">
document.getElementById('Add').click();

请注意,您需要id="Add"才能使用它getElementById('Add')

于 2013-11-06T20:47:59.803 回答
2

由于您似乎无法控制您尝试操作的页面,因此您必须按原样使用 HTML。在这种情况下,如果您确实可以控制您正在使用的浏览器(您是从控制台执行此操作吗?),您可以使用document.querySelectorDocumentation here

所以,在你的具体情况下,你想做

document.querySelector('[value="Add"]').click()

或者,为了让事情更具体,你可以做

document.querySelector('#UserManagebutton1 input[value="Add"]').click()

这是一个例子:http: //jsfiddle.net/xonev/V6SQ2/

于 2013-11-06T21:03:05.610 回答
1

您的按钮没有唯一标识符。制作一个与值相同的 ID。

<td valign="top" id="UserManagebutton1">
  <input type="button" id="Add" value="Add" class="inputbutton">
  <input type="button" id="Delete" value="Delete" class="inputbutton">
  <input type="button" id="Import" value="Import" class="inputbutton">
  <input type="button" id="Export" value="Export" class="inputbutton">
  <input type="button" id="Change" value="Change Status" class="inputbutton">
  <input type="button" id="Purge" value="Purge AD Users" class="inputbutton">
</td>

使用它,那么您的代码将起作用。

于 2013-11-06T20:48:22.863 回答
1

在您的代码中,您已将按钮的值设置为Add这意味着将出现在按钮上的文本是Add. 值,作为属性设置该元素的文本。

如果要通过 id 访问该元素,则需要为其指定一个id属性,如下所示:

<input id="Add" class="inputbutton" type="button" value="Add">

要访问该按钮,您只需使用您在帖子中使用的代码:

document.getElementById('Add').click();

此外,如果您不想修改当前代码,您可以简单地使用另一个 javascript 选择器来获取该特定元素,例如:

document.getElementsByClassName('inputbutton')[0].click();

此外,如果您想为其他元素添加点击事件侦听器,就像您为Add按钮所做的那样,您可以做一些Event Delegation非常好的管理性能:

// Bind the event listener to the top most element that contains your event targets
document.addEventListener('click', function(event){
    // Get target of the event
    var target = event.target || event.srcElement;

    switch(target.value) {
      case('Add'):
        alert('Add button clicked!');
        break;
      ...
      // Add cases for the other buttons as well
    }
});

这是一个更简单的版本,它只监听按钮的点击Add

document.addEventListener('click', function(event){
    var target = event.target || event.srcElement;

    if (target.value == 'Add') {
        alert('You clicked?');
    }
});
于 2013-11-06T20:51:36.497 回答
0

如果您没有使用任何 JS 库,请尝试:

document.getElementsByName('Add')[0].click()

更新 - 下面更正

由于按钮没有name属性(感谢@Rocket Hazmat)并且由于您无法更改 HTML,您可以尝试这样做:

document.getElementsByTagName('input')[0].click();

// [0] 用于添加按钮,
// [1] 用于删除按钮,
// 等等。

于 2013-11-06T20:47:55.937 回答