2017-03-10 42 views
1

看起來很簡單,但我無法弄清楚如何從剃鬚刀代碼中調用JavaScript函數。在剃鬚刀代碼中使用javascript/jquery

問題:我需要與傳入的id我的表頭一列的位置..我打電話爲getPosition功能從我的剃刀代碼

<table> 
    <thead> 
     <tr> 
     @foreach (Assessment geAssessment in Model.assessments) 
     { 
      <th [email protected]>@geAssessment.Name</th> 
     } 
     </tr> 
    </thead> 
    <tbody> 
    <tr> 
     @foreach (ShortResult geResult in Model.results) 
     { 
      @:{ var i = getPosition(@geResult.assessmentId);} 
     } 
     </tr> 
    </tbody> 
</table> 
  • 我的腳本中相同的視圖/頁

    <script type="text/javascript"> 
        function getPosition(id) { 
        var c = '#' + id; 
        alert(c); 
        return $c.index();  
        } 
    
        $(function() {}); 
    </script> 
    

UP DATE

正如馬克斯的建議,我改變了我的表,如下所示,這是完美的,但現在,我怎麼設置在TD

<tbody> 
    <tr> 
    @{ 
            var index = 4; //start index of assessments will be 4 
            foreach(Assessment geAssessment in Model.assessments) 
            { 
            <td> 
             @foreach (ShortResult geResult in Model.results) 
             { 
              if(geResult.StudentID == geStudent.studentid) 
              { 
              @: 
               <script> 
                { 

                 var assessmentIndex = getPosition(@geResult.assessmentId); 
                 @*if (assessmentIndex == @index) { 
                  geResult.ResultValue 
                 }*@ 

                } 
               </script> 

              } 
             } 
            </td> 
            index++; 
            } 
           } 
    </tr>  
</tbody> 

現在讓我解釋值怎麼回事..

  • 我想基於我的模型
  • 評估每個TD我檢查的數量連續增加X TDS,如果我有一個結果與此特定assessmentid,如果是的,我想打印在td..ther e是一些語法錯誤的位置:

    if (assessmentIndex == @index) { 
                      geResult.ResultValue 
    } 
    

回答

1

您與爲getPosition功能腳本必須是您的通話以上。在@之後:你必須使用指令,否則它被認爲是一個文本。您的代碼看起來像:

<script type="text/javascript"> 
    function getPosition(id) { 
    var c = '#' + id; 
    alert(c); 
    return $c.index();  
    } 

    $(function() {}); 
</script> 


<table> 
    <thead> 
     <tr> 
     @foreach (Assessment geAssessment in Model.assessments) 
     { 
      <th [email protected]>@geAssessment.Name</th> 
     } 
     </tr> 
    </thead> 
    <tbody> 
    <tr> 
     @foreach (ShortResult geResult in Model.results) 
     { 
      @: <script>{ var i = getPosition(@geResult.assessmentId);}</script> 
     } 
     </tr> 
    </tbody> 
</table> 
+0

是的,這個位有效!但它說我不能在標籤內使用

1

嗨沒有必要的@:語法,你可以直接使用它那麼現在你的代碼的樣子。

<script type="text/javascript"> 
    function getPosition(id) { 
    var c = '#' + id; 
    alert(c); 
    return $c.index();  
    } 

    $(function() {}); 
</script> 

<table> 
    <thead> 
     <tr> 
     @foreach (Assessment geAssessment in Model.assessments) 
     { 
      <th [email protected]>@geAssessment.Name</th> 
     } 
     </tr> 
    </thead> 
    <tbody> 
    <tr> 
     @foreach (ShortResult geResult in Model.results) 
     { 
     <script>{ var i = getPosition(@geResult.assessmentId);}</script> 
     } 
     </tr> 
    </tbody> 
</table>