我有一個的jsfiddle在這裏,請在Internet Explorer和一個其他主要瀏覽器中打開:無效的格式問題
中的jsfiddle http://jsfiddle.net/7sARw/47/
現在,只需點擊「添加問題」按鈕,它會在下面追加一行。在該行中,它顯示2行字母按鈕(每行包含7個字母按鈕)和兩個按鈕,一個稱爲「Select All Answers」,另一個稱爲「Remove All Answers」。
現在,在主要的瀏覽器中,按鈕都集中在表格中,這很好。但在Internet Explorer中,它並不居中,它仍然與左邊對齊。我們認爲,現在是這樣做的原因是因爲追加行時的HTML被格式化的方式:這似乎是想是這樣的:
<tr><td><div><tr><td></td></tr></div></td></tr>
我的問題是,如何才能我改變格式的HTML,以便它是有效的,但也能夠在Internet Explorer的附加行中的所有內容?
下面是代碼的CSS和jQuery/HTML:
.answer {
min-width:100%;
max-width:100%;
padding-top:5%;
padding-bottom:5%;
}
.answerBtnsRow{
background-color: #ffffff;
border: #666666 1px solid;
color: black;
font-weight:bold;
display:none;
cursor:pointer;
font-size:85%;
}
.allBtnsRow{
text-align:center;
cursor:pointer;
font-size:85%;
}
.allRemoveBtnsRow{
text-align:center;
cursor:pointer;
font-size:85%;
}
下面是jQuery的/ HTML代碼:
function insertQuestion(form) {
var context = $('#optionAndAnswer');
var currenttotal = context.find('.answerBtnsOn').length;
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'>");
var $td = $("<td class='extratd'>");
var $answer = $("<div class='answer'>3. Answer:<br/></div>");
var $questionType = '';
gQuestionIndex++;
var $this, i = 0,
$row, $cell;
$('#optionAndAnswer .answers').each(function() {
$this = $(this);
if (i % 7 == 0) {
$row = $("<tr/>").appendTo($answer);
$cell = $("<td/>").appendTo($row);
}
var $newBtn = $(("<input class='answerBtnsRow answers' type='button' style='display:%s;' onclick='btnclick(this, " + gQuestionIndex + ");' />").replace('%s', $this.is(':visible') ? 'inline-block' : 'none')).attr('name', "value[" + gQuestionIndex + "][]").attr('value', $this.val()).attr('class', $this.attr('class')).attr('id', $this.attr('id') + 'Row');
$newBtn.appendTo($cell);
i++;
}); var $this = $(this);
var $BtnsClass = '';
$row = $("<tr/>").appendTo($answer);
$cell = $("<td/>").appendTo($row);
if ($questionType == 'True or False' || $questionType == 'Yes or No') {
$BtnsClass = $("<input class='allBtnsRow btnsAll' type='button' style='display: none;' value='Select All Answers' onClick='selectAll(this);' /><input class='allRemoveBtnsRow btnsRemove' type='button' style='display: none;' value='Remove All Answers' onClick='removeAll(this);' />");
} else {
$BtnsClass = $("<input class='allBtnsRow btnsAll' type='button' value='Select All Answers' onClick='selectAll(this);' /><br/><input class='allRemoveBtnsRow btnsRemove' type='button' value='Remove All Answers' onClick='removeAll(this);' />");
}
$BtnsClass.appendTo($cell);
$tr.append($td);
$td.append($answer);
$tbody.append($tr);
count++;
$('#optionAndAnswer .answerBtns').hide();
updateAnswer($answer, gQuestionIndex);
}
爲什麼你追加一個TR到DIV?你甚至不需要div $ row = $(「
這是一個課程的任務嗎?相同的用戶界面不斷顯示不同的代碼方法 – charlietfl
@mplungjan這是因爲在該附加行中,它將包含多個功能,'.options','.noanswer'和'.answers'。這個只是在附加行中顯示'.answers'。但是我希望它在行的頂部顯示'.options',然後在下面顯示'.noanswers',然後在下面的'.answer'部分顯示。 – user1914374