检索没有名称或ID的元素

时间:2013-04-06 01:04:17

标签: javascript

我正在尝试编写一些代码来完成非常简单的事情。我之前从未使用过PayPal按钮,这会造成一些困难。

我之前能够使用document.getElementById或document.getElementsByName()来模拟按钮点击,但是,我上面尝试提交的表单没有名称或ID,所以我不知道如何在我的代码中引用它。

我正在尝试使用Javascript编写一个简短的chrome扩展程序,它将在页面上找到paypal表单/按钮(我不拥有或无法控制),并在不必单击它的情况下提交它。任何指导/链接将不胜感激。

3 个答案:

答案 0 :(得分:1)

您的按钮看起来有名称,因此您可以使用.getElementsByName()

var btn = document.getElementsByname('submit')[0]

如果您可以访问jQuery,或者可以将jQuery添加到项目中,那么

var btn = jQuery('input[name="submit"]')

答案 1 :(得分:0)

使用jQuery会更容易,但使用原生js,你可以这样做:

function getPaypalForms()
{
  var matchingElements = [];
  var allForms = document.getElementsByTagName('form');
  for (var i = 0; i < allForms.length; i++)
  {
    if (allForms[i].getAttribute('action') == 'https://www.paypal.com/cgi-bin/webscr')
    {
      // Element exists with attribute. Add to array.
      matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}

上面有很多方法可以编辑此功能以更好地满足您的需求。您可以对其进行编辑以仅从这些表单中收集提交按钮,或者重构它以接受与attr和值匹配的字符串。但是,就像我说的那样,使用jquery会更容易:

$('form[action="https://www.paypal.com/cgi-bin/webscr"]');

答案 2 :(得分:0)

根据您的更新,首先关闭:不要这样做,除非您试图欺骗人们没钱。在这种情况下,不要这样做=)(我不是律师,但我很确定paypal可以“你没有点击按钮,你自动化它。现在有人的网站让你花500美元那你不想。强硬“)。那就是:document.getElementsByTagName(“form”),然后过滤getAttribute(“action”)。