我有一个正常工作的功能:
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 :(得分:1)
insertQuestion
函数已将td
元素包装在tr
中:
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
//...
$tr.append($noofanswers);
您只需修改$tr
,而不是将tr
添加到$noofanswers
,或者您可以移除对append
的调用并将tr
保留在$noofanswers
中{1}}。
//var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $noofanswers = $("<tr><td class='noofanswers'></td></tr>");
//...
//$tr.append($noofanswers);
$tbody.append($noofanswers);
答案 1 :(得分: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);