2016-09-27 207 views
1

我有一段代码。在Chrome控制台中调试Javascript

<div id="start_3333" onclick="doCalc(3333, this)"></div> 

function doCalc(this) 
{ 
    var id = $(this).attr(id); 
Console.log(id); 
} 

这个div被插入数据表中的每一行。我想通过键入doCalc(3333)在Chrome的控制台窗口中测试这个函数doCalc,但得到未定义的错误。我如何在Chrome的控制台窗口中传递“this”对象,以便我可以调试并检查函数中传递给“id”变量的值。

+4

不命名参数'this'。 –

+0

也不会在每行之后输出那个javascript函数,你只需要它一次。 –

+0

传递document.getElementById(“start_3333”)一个参数... –

回答

0

我会建议不同的实现:

<div id="start_3333"></div> 

$("#start_3333").click(function(event) { 
    console.log($(event.target).attr("id")); 
}); 
0
  1. 获取到您的DIV的引用: var $myRef = $('start_3333');
  2. 运行功能: doCalc($myRef);

和我评论,当然上面,因为JavaScript是区分大小写的,所以'console'中的'c'小写。

0

回答一般问题。

进入调试器的Elements选项卡,并找到您要使用的元素。如果点击它,它将在元素旁边显示== $。这意味着您可以在控制台中使用变量$0来引用该元素。此外,您单击的上一个项目变为$1,之前的项目为$2,依此类推。因此,您可以在控制台中键入

doCalc(3333, $0) 

以该元素作为参数运行您的函数。

这对你的函数不起作用,因为它没有声明带两个参数。你的功能应该是这样的:

function doCalc(num, element) { 
    var id = element.id; 
    console.log(id); 
}