我正在制作一个小型个人应用,用于使用jquery创建html表。我有这个脚本(我从这里借来的地方并稍微调整一下),只需点击一下按钮,就可以在表格末尾添加一个新列。
function addJSONKey(){
var first = true;
$('#jsonTable').find('tr').each(function(){
$(this).find('th').eq(-1).after(
'<th contentEditable>New Key</th>'
);
if(first === true){
first = false;
// the function does not execute this statement
// even though the debugger breaks here.
$(this).find('td').eq(-1).after(
'<td>Frist</td>'
);
} else {
$(this).find('td').eq(-1).after(
'<td contentEditable>Not First</td>'
);
}
});
}
我希望脚本要做的是,第一行与其他行不同,但是如果我运行脚本,它会在任何地方返回Not First行。
答案 0 :(得分:1)
你过分复杂了一点。您可以通过索引区分行并相应地追加新的th或td:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Add</button>
<table id="jsonTable">
<tr>
<th>One</th>
</tr>
<tr>
<td>Data</td>
</tr>
<tr>
<td>Data</td>
</tr>
</table>
&#13;
DataTable table = new DataTable();
table.Columns.Add("Title");
dataGridView1.DataSource = table;
&#13;
答案 1 :(得分:0)
用
替换你的方法function addJSONKey() {
$('#jsonTable').find('tr').each(function(i) {
// Header row
if (i === 0) {
$(this).find('th').eq(-1).after('<th contentEditable>New Key</th>');
}
// First data row
else if (i === 1) {
$(this).append('<td>Frist</td>');
}
// Not header and not the first row
else {
$(this).append('<td contentEditable>Not First</td>');
}
});
}
$('button').click(addJSONKey);
基本上你的布尔优先只对第一行的第一列是真的。
答案 2 :(得分:0)
在您的代码中,您将标题的第一行计为first
,您想要添加到第一行非标题行,即第二行,即索引1,因为它是&#39; s 0基于:)
function addJSONKey(){
$('#jsonTable').find('tr').each(function(row){
$(this).find('th').eq(-1).after('<th contentEditable>New Key</th>');
if(row == 1){
// the function does not execute this statement
// even though the debugger breaks here.
$(this).find('td').eq(-1).after('<td>Frist</td>');
} else {
$(this).find('td').eq(-1).after(
'<td contentEditable>Not First</td>'
);
}
});
}
//addJSONKey();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="jsonTable">
<tr><th>a</th><th>b</th></tr>
<tr><td>10</td><td>11</td></tr>
<tr><td>20</td><td>21</td></tr>
</table>
<button onclick="addJSONKey()">go</button>
&#13;