javascript
  • jquery
  • html
  • ajax
  • 2012-05-28 68 views 1 likes 
    1

    我有一個函數低於其正常工作:加入tr標籤在功能停止工作

    function insertQuestion(form) { 
        var $tbody = $('#qandatbl > tbody'); 
        var $tr = $("<tr class='optionAndAnswer' align='center'></tr>"); 
        var $noofanswers = $("<td class='noofanswers'></td>"); 
        var $questionType = ''; 
    
        $('.numberAnswerTxt', context).each(function() { 
         var $this = $(this); 
         var $noofanswersText = ''; 
    
         if ($questionType == 'True or False' || $questionType == 'Yes or No') { 
          $noofanswersText = $("<span class='naRow string' style='display: block;'>Only 1 Answer</span><input type='text' class='numberAnswerTxtRow answertxt' style='display: none;' onkeyup='numberKeyUp(this)' onkeypress='return isNumberKey(event)' onChange='getButtons()'>").attr('name', $this.attr('name')).attr('value', $this.val()); 
         } 
         else { 
          $noofanswersText = $("<span class='naRow string' style='display: none;'>Only 1 Answer</span><input type='text' class='numberAnswerTxtRow answertxt' style='display: block;' onkeyup='numberKeyUp(this)' onkeypress='return isNumberKey(event)' onChange='getButtons()'>").attr('name', $this.attr('name')).attr('value', $this.val()); 
         } 
    
         $noofanswers.append($noofanswersText); 
        }); 
    
        $tr.append($noofanswers); 
        $tbody.append($tr); 
    } 
    

    但我想$noofanswers將包含在它自己的錶行,所以我再改$noofanswers包括<tr></tr>使代碼:

    var $noofanswers = $("<td class='noofanswers'></td>"); 
    

    現在變成:

    var $noofanswers = $("<tr><td class='noofanswers'></td></tr>"); 
    

    但是,如果我這樣做,然後$('.numberAnswerTxt', context).each(function() {不正常工作。所以我的問題是,如果我添加<tr>標籤,那麼我需要在函數內更改以使其再次運行?

    +0

    你好,對不起,我應該提到這是不是我已經包括'tr'標籤的代碼的唯一的一塊,還有一些其他的代碼以及其中我現在有問題。我已經嘗試了兩個答案,但問題是它弄亂了它的外觀,因爲colums有額外的'tr'標籤,有些則沒有。 – user1421430

    回答

    1

    insertQuestion功能已經包裹td元素在tr

    var $tr = $("<tr class='optionAndAnswer' align='center'></tr>"); 
    //... 
    $tr.append($noofanswers); 
    

    你可以簡單地修改$tr代替將tr$noofanswers,或者你可以刪除調用append並保持tr$noofanswers

    //var $tr = $("<tr class='optionAndAnswer' align='center'></tr>"); 
    var $noofanswers = $("<tr><td class='noofanswers'></td></tr>"); 
    //... 
    //$tr.append($noofanswers); 
    $tbody.append($noofanswers); 
    
    +0

    我有eddited問題,並在頂部包括評論。我不能簡單地按照你所說的那樣做,因爲我有多個列,我試圖發佈一個有問題的代碼示例,但就你而言,雖然這只是列,但我必須包括所有我正在追加的列。 – user1421430

    +0

    也發現這樣做也意味着功能不起作用 – user1421430

    0

    你有

    後來

    $tr.append($noofanswers); 
    $tbody.append($tr); 
    

    ,所以你不能完成你的td另一個tr,因爲它已經包裹。然後,你應該改變像這樣的代碼:

    var $noofanswers = $("<tr><td class='noofanswers'></td></tr>"); 
    ... 
    $tbody.append($noofanswers); 
    
    +0

    看看下面的評論問題 – user1421430

    相關問題