我正在尝试使用Web开发人员工具“Web控制台”和“Firebug”。我试图模拟当我通过在webconsole中输入脚本而点击此按钮时发生的情况,但它无法正常工作。有人可以帮我弄清楚在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 is undefined'
iToggleDisplay('Left', 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
答案 0 :(得分:2)
Left
不是dom元素,它是ID值。您需要将其转换为元素:
iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
答案 1 :(得分:0)
看来你需要传递对元素的引用,而不仅仅是id。
iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
其他选项是点击
var elem = document.getElementById("Left");
elem.onclick.apply(elem);
答案 2 :(得分:0)
如果您在事件属性中的html中放置了一些代码,那么this
指向dom对象(在您的情况下指向ID为Left
的链接)。要获得此功能,您可以使用document.getElementById
函数ID
iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
但您可以通过以下方式模拟按钮:
document.getElementById('Left').click();
答案 3 :(得分:0)
您必须传递实际的DOM
节点,而不是id
作为第一个参数
所以而不是
iToggleDisplay('Left', 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
应该是
iToggleDisplay(document.getElementById('Left'), 'nccDropToggleSection', 'nccDropToggleContent', null, null, 2);
因为this
指的是节点本身