2016-11-22 19 views
0

我在這裏有一個問題,下面的代碼jQuery的檢查,未經檢查的事件

$('.paron').change(function() { 
    if($(this).is(":checked")) { 
      var moduleid = <?php echo $moduleid; ?>; 
       var studentid = $(this).attr('id'); 
       var weeknum = <?php echo $weeknum; ?>; 

       undisableTxt(studentid); 

      } 
     }); 

所以我採取了一定tr它有一個inputid和我把它發送給一個函數。一切都好,直到現在。 但是,當用戶checkinput [checkbox] 當他UNCHECK時,發生這種情況,我怎麼能有id發送到另一個功能?

我試過以下,但沒有運氣

$('.paron').change(function() { 
if($(this).is(":checked")) { 
    var moduleid = <?php echo $moduleid; ?>; 
    var studentid = $(this).attr('id'); 
    var weeknum = <?php echo $weeknum; ?>; 

      undisableTxt(studentid); 

     } else { 
     disableTxt(studentid); //error for undefined variable student id. 
     } 
    }); 

,所以我得到未定義studentid錯誤。 FYI每行有另一個ID。

回答

1

變量'studentId'在你的else塊中不存在。你也不應該用var來定義變量塊,因爲var不會在塊級別範圍內使用變量,所以使用let或const。我還設置了$ this,以節省來回執行DOM的性能。

在jQuery中,你會這樣做。

$('.paron').change(function() { 
    const $this = $(this); 
    const studentid = $this.attr('id'); 

    if($this.is(":checked")) { 
    // removed for brevity, but using let or const 
    undisableTxt(studentid); 
    } else { 
    disableTxt(studentid); 
    } 
}); 
+0

我還發現了另一個解決方法''最近',但你的它更好!非常感謝!!當系統讓我來接受它! –

+0

謝謝,希望我的其他評論/改動看起來不粗魯或不知道,我只是想盡我所能做出最好的例子。 –

+0

我是jquery的新手,關於'const'和'let'的新手可以幫助我很多,因爲我已經很快看到了'let',我知道它有很棒的性能!非常感謝:D –