0

我正在尝试将 Web 开发人员工具“Web Console”与“Firebug”一起使用。我试图通过在 web 控制台中输入脚本来模拟单击此按钮时发生的情况,但它不起作用。有人可以帮我弄清楚在 Web 控制台中输入的内容吗?我向老板寻求帮助,但他说这是最后一根稻草!!请帮忙。

这是带有按钮的代码....

<div id="car_perf_internal" style="display: inline;">
  <span style="float:left;"> </span>
  <div class="select_box right nccDropToggleSection">
    <a id="Left" class="NCCPUSHBUTTON" href="javascript:;" onclick="iToggleDisplay(this, 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);">
  <span>
<input id="buttons_K_NC_TITLE" class="NCCPUSHBUTTON" type="button" value="Performance Documents" name="buttons_K_NC_TITLE">
</span>
</a>

我尝试将其输入 Web 控制台,但它显示“TypeError:a 未定义”

iToggleDisplay('Left', 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
4

4 回答 4

2

Left不是 dom 元素,它是 ID 值。您需要将其转换为元素:

iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
于 2012-09-06T13:10:14.170 回答
0

您必须传递实际DOM节点而不是id作为第一个参数

所以而不是

iToggleDisplay('Left', 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);

它应该是

iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);

因为this是指节点本身

于 2012-09-06T13:12:01.570 回答
0

看来您需要传递对元素的引用,而不仅仅是 id。

iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);

另一种选择是调用点击

var elem = document.getElementById("Left");
elem.onclick.apply(elem);
于 2012-09-06T13:09:59.477 回答
0

如果您在 html 中的 event 属性中放置一些代码,则this指向 dom 对象(在您的情况下指向带有 id 的链接Left)。要得到这个,你可以通过 id 和document.getElementById函数得到它:

iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);

但是您可以通过这种方式模拟按钮单击:

document.getElementById('Left').click();
于 2012-09-06T13:10:27.883 回答