1

私は正しく動作する以下の機能を持っています:

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>タグを追加した場合、関数内で何を変更して再び機能させる必要があるかということです。

4

2 に答える 2

1

insertQuestion関数はすでにtd要素を次のようにラップしていますtr:

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

$trtoを追加する代わりに単純に変更するか、tr$noofanswersの呼び出しを削除してinappendを保持することができます。tr$noofanswers

//var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $noofanswers = $("<tr><td class='noofanswers'></td></tr>");
//...
//$tr.append($noofanswers);
$tbody.append($noofanswers); 
于 2012-05-28T09:54:47.507 に答える
0

あなたが持っている

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

以降

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

すでにラップされているのでtd、別のラップでラップすることはできません。tr次に、次のようにコードを変更する必要があります。

var $noofanswers = $("<tr><td class='noofanswers'></td></tr>");
...
$tbody.append($noofanswers); 
于 2012-05-28T09:55:43.550 に答える