1

我有这个有一个表的 div,我想根据场景动态地向该表添加一行。如何用 jquery 来做到这一点?

<div style="margin-bottom: 4px;" id="div_outgoing_call_dates_rows">
<table id="tbl_dynamic_call_dates">
<tbody><tr><td>Appointment date</td><td>Client time window</td></tr>
<tr id="client_app_0"><td>04/10/2013</td><td><select name="CSSAtapsClient[client_time_window_arr][0]" id="client_time_window_0">undefined<option value="5702">07am - 10am</option><option value="5703">10am - 1pm</option><option value="5704">12pm - 3pm</option><option value="5705">03pm - 06pm</option><option value="5706">06pm - 09pm</option><option value="5707">07pm - 10pm</option><option value="5708">09pm - 12am</option><option value="5709">12am - 7am</option></select></td>
</tr>
</tbody>
</table>
</div>

我试过这个,它在最后一行没有工作,而是在 div 内添加,旧内容被清除。

$("#div_outgoing_call_dates_rows").append(dynamicRow);

感谢早期的反应。

小提琴Here

编辑 2

     $.each(array,function(i){
     if($("#client_app_tr_" + array[i]).length == 0) {
     console.log("yes  not exisit so adding a new one");
     dynamicRow += "<tr id=\'client_app_tr_" + array[i] + "\'><td>" + array[i] + "</td><td>" + "<select id=\'client_time_window_" + i + "\' name=\'CSSAtapsClient[client_time_window_arr][" + i + "]\'>" + dynamicDD + "</select>" + "</td></tr>";
     }
     });

我有这样的 tr id -> client_app_tr_07/10/2013, client_app_tr_08/10/2013, client_app_tr_09/10/2013 ...所以如果该 id 不存在我需要添加一个新行。它不起作用,因为我检查它的方式总是进入这个循环。if($("#client_app_tr_" + array[i]).length == 0) {}

编辑 3

这似乎也不起作用。我一定遗漏了一些东西,或者没有任何方法可以检查天气元素 id 是否存在于 jquery 中?

if($("#client_app_tr_" + array[i])[0] !== true) {}
4

3 回答 3

1

div_outgoing_call_dates_rowsdiv元素,你需要将行追加到table里面div,所以使用后代选择器

$("#div_outgoing_call_dates_rows table").append(dynamicRow);
于 2013-10-04T05:43:50.857 回答
1

您必须选择table才能附加动态行,因此更改选择器:

$("#div_outgoing_call_dates_rows table").append(dynamicRow);
于 2013-10-04T05:44:39.247 回答
1

试试这个,这会对你有所帮助。

var old_item =$('#div_outgoing_call_dates_rows').html(); 
old_item=old_item+'New Content'; 
$('#div_outgoing_call_dates_rows').append(old_item);

在这里拉小提琴。

于 2013-10-04T05:47:21.520 回答