jQuery故障排除技术

时间:2013-08-08 14:23:14

标签: jquery

我正在尝试在Q& A切换面板中找到下面代码中的问题,其中每个h3问题后跟一个div回答。这个特殊的代码应该通过所有的问题和答案,并关闭任何开放的。

我不是在问这里代码有什么问题,但如果可能有一些技巧来排除故障,我不知道。例如,当.next()转移到此h3的div时,在某个地方表示div jQuery对象,即next()的结果会很好。 。在slideToggle(1000)中,很高兴看到slideToggle()正在查看的切换状态变量。

$('#qa h3').each(function() {
debugger;
this$ = $(this);
if(this$.hasClass('ui-state-active')) {
    this$.toggleClass("ui-state-active ui-state-default")
   .next()
    .toggleClass("ui-accordion-content-active")
    .slideToggle(1000);
} 

感谢您的任何建议

2 个答案:

答案 0 :(得分:1)

您只需使用console.log打印要求您向控制台请求的变量。

$('#qa h3').each(function() {
  debugger;

  $this = $(this);
  console.log($this);

  if($this.hasClass('ui-state-active')) {
    console.log('$this has class .ui-state-active');
    console.log('$this.next() = ' + $this.next());

    $this.toggleClass("ui-state-active ui-state-default").next().toggleClass("ui-accordion-content-active").slideToggle(1000);
  }
}

对于书籍,我认为你的问题是你错过了大括号。我在上面的代码中添加了缺少的括号。

答案 1 :(得分:1)

if (this$.hasClass('ui-state-active')) {
    // code added for troubleshooting purposes
    var that = this$.next();
    console.log(that);
    // end
    this$.toggleClass("ui-state-active ui-state-default")
    .next()
    .toggleClass("ui-accordion-content-active")
    .slideToggle(1000);
}