所以我要做的是先添加一个外部div容器,然后先添加内容,然后追加到最后。但结果似乎是我在开始时添加了自动插入一个。结果分成两个部分。
任何?谢谢!
//adds the outer div tag here...
$('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')')
.append("<div id='outer' style='height:15px'>");
//adds the inner content here...
for (l = 0; l < rssArray.length; l++) {
if (eleArray[l][19] == curNumMonth
&& eleArray[l][20] == curNumDay
&& eleArray[l][21] == curNumYear) {
$('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')')
.append("</br><div style='height:auto'><b>"
+ eleArray[l][8]
+ "</b></br><a href='"
+ eleArray[l][0]
+ "' target='_blank'>"
+ eleArray[l][1]
+ "</a></div>");
}
//adds the outer div closing tag here...
$('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')').append("</div>");
答案 0 :(得分:7)
您不是使用jQuery创建标记,而是创建DOM对象。 div
由打开和关闭标签以及属性等表示,但由浏览器解析并存储为数据树中的对象。 jQuery,最终是javascript,只是告诉浏览器在树中创建一个新对象。
您应该创建外部div,然后向其添加内容。 jQuery将为您完成艰苦的工作。
//adds the outer div tag here...
$('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')').append("<div id='outer' style='height:15px'>");
//adds the inner content here...
for (l = 0; l < rssArray.length; l++) {
if (eleArray[l][19] == curNumMonth && eleArray[l][20] == curNumDay && eleArray[l][21] == curNumYear) {
$('#outer').append("</br><div style='height:auto'><b>" + eleArray[l][8] + "</b></br><a href='" + eleArray[l][0] + "' target='_blank'>" + eleArray[l][1] + "</a></div>");
}
我只在选择器中引用#outer
,因为作为ID,它应该是唯一的。如果不是,请将其更改为类并执行此操作:
//adds the outer div tag here...
var aspcal = $('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')');
aspcal.append("<div class='outer' style='height:15px'>");
//adds the inner content here...
for (l = 0; l < rssArray.length; l++) {
if (eleArray[l][19] == curNumMonth && eleArray[l][20] == curNumDay && eleArray[l][21] == curNumYear) {
aspcal.find('.outer').append("</br><div style='height:auto'><b>" + eleArray[l][8] + "</b></br><a href='" + eleArray[l][0] + "' target='_blank'>" + eleArray[l][1] + "</a></div>");
}
如果您已经创建了内容,则可以使用.wrap('<div>')
在内容周围添加div(或任何其他父级对象)。
答案 1 :(得分:2)
首先创建DIV
对象,向其添加内容,然后将DIV
附加到#aspcal
表。像这样:
//Create the DIV...
var myDiv = $("<div id='outer' style='height:15px'></div>");
//add the inner content...
for (l = 0; l < rssArray.length; l++)
if (eleArray[l][19] == curNumMonth && eleArray[l][20] == curNumDay && eleArray[l][21] == curNumYear) {
myDiv.append("</br><div style='height:auto'><b>" + eleArray[l][8] + "</b></br><a href='" + eleArray[l][0] + "' target='_blank'>" + eleArray[l][1] + "</a></div>");
}
//add the div here...
$('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')').append(myDiv);
答案 2 :(得分:1)
简短的回答,因为jQuery的工作原理...... 您是否尝试过创建空div然后附加到该div?
var theDiv = $("<div id='outer' style='height:15px'>");
for (l = 0; l < rssArray.length; l++) {
if (eleArray[l][19] == curNumMonth && eleArray[l][20] == curNumDay && eleArray[l][21] == curNumYear) {
theDiv.append("<br /><div style='height:auto'><b>" + eleArray[l][8] + "</b></br><a href='" + eleArray[l][0] + "' target='_blank'>" + eleArray[l][1] + "</a></div>");
}
$('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')').append( theDiv );
答案 3 :(得分:0)
这是追加API的工作方式。我会将您的内容作为变量,然后它变为$(targetselector).append('<div>' + variable + '</div>')
。也可以使用具有相同结果的.html()
。
主要区别在于,您不必按照当前的方式添加所有内容,而只是连接字符串。
由于你正在连接一个字符串,所以div甚至可以成为它的一部分,然后你就.html(variable)