javascript - 单击特定链接的功能

标签 javascript getelementbyid

我需要能够点击 l65,仅限于 l63 = 卖出的订单。

警告: 由于某种原因,该网站在每个订单中一遍又一遍地使用相同的 ID,但由于这不是我的网站,因此我无法更改它。

我当前订单列表的代码:

<div id="orderlist">
<label id="l61">05/19/2014 08:57:34</label>
<label id="l62">0.00066000</label>
<label id="l63">Buy</label>
<label id="l64">6</label>
<label id="l64">6</label>
<label id="l62">0.00396000</label>
<label id="l65" onclick="cancelOrder(346046);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:08:35</label>
<label id="l62">0.00078000</label>
<label id="l63">Sell</label>
<label id="l64">2</label>
<label id="l64">1</label>
<label id="l62">0.00078000</label>
<label id="l65" onclick="cancelOrder(38493);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:12:08</label>
<label id="l62">0.00076000</label>
<label id="l63">Sell</label>
<label id="l64">14</label>
<label id="l64">14</label>
<label id="l62">0.01064000</label>
<label id="l65" onclick="cancelOrder(38495);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:13:49</label>
<label id="l62">0.00077000</label>
<label id="l63">Sell</label>
<label id="l64">15</label>
<label id="l64">15</label>
<label id="l62">0.01155000</label>
<label id="l65" onclick="cancelOrder(38497);">Cancel</label>
<div id="b1"></div> </div>
</div>

当需要时,我需要能够单击 l65 来取消销售订单。 我知道唯一改变的是 onclick 函数这一事实非常不方便,但事实就是如此,我无法更改该网站,我不以任何方式隶属。

如果有帮助的话,所有卖单总是在底部,所以我的想法是这样的:

getElementById 总是从顶部开始,对吗?如果有办法开始查看底部,则可以从下到上查找 l63 = 卖出。 如果 l63 = sell(底部),则脚本应执行 l65(底部)的点击。

这可能吗?

编辑:

我刚刚在上面粘贴的订单列表中注意到,卖单的所有 onclick 函数都以 38 开头,而买单则以 34 开头。我可以利用该信息做一些事情吗?

最佳答案

如果网站使用的 ID 不唯一,那么您绝对无法可靠地使用 getElementById,因为 ID 的基本规则是它们引用一个元素。使用非唯一 ID 是 HTML 中最大的禁忌,因此根据数据集的设计方式,几乎没有可以用来选择要查找的特定标签的唯一特征。

但是,由于您现在知道代表销售订单取消按钮的所有元素都有一个共同特征(订单号的一部分,根据问题编辑),因此有一种使用 JavaScript querySelectorAll 方法来仅抓取您要查找的元素:

var sales = document.querySelectorAll('label[onclick^="cancelOrder(38"]');

现在您只想编写一个 foreach 循环来运行每个选定元素的 onclick 函数。这是一个完全工作的 jsFiddle 以非常简单的方式演示了这一点:http://jsfiddle.net/7fEs6/4/

var sales = document.querySelectorAll('label[onclick^="cancelOrder(38"]');

[].forEach.call(
  sales, 
  function(el){
    el.onclick();
  }
);

关于javascript - 单击特定链接的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23769604/

相关文章:

javascript - 如何在javascript中使用数组填充来显示用户输入的文本或数字?

java - 尝试访问 Login 元素,但没有元素 id 或类

javascript - event.target 元素的 style.display ="block"和其他元素的 style.display ="none"

javascript - 禁用 <a> 标签一段时间

javascript - deviceready 未在 Android 设备上触发

使用枚举的 JavaScript 切换大小写

javascript - 如何检测 div 何时失去焦点?

javascript - 使用 jQuery 重置每个实例的随机字符串

javascript - Polymer 通过 id 从影子根获取元素

javascript - getElementsByTagName 有效,但 getElementById 不起作用?