Javascript 如何放置<;部门>;及</部门>;在使用append()的内容块之前和之后?
所以我要做的是通过先追加,然后追加内容,最后追加来添加一个外部div容器。但结果似乎是,我在开始时添加的通过自动插入一个。结果在两个单独的div中 有人吗?谢谢Javascript 如何放置<;部门>;及</部门>;在使用append()的内容块之前和之后?,javascript,jquery,html,Javascript,Jquery,Html,所以我要做的是通过先追加,然后追加内容,最后追加来添加一个外部div容器。但结果似乎是,我在开始时添加的通过自动插入一个。结果在两个单独的div中 有人吗?谢谢 //adds the outer div tag here... $('#aspcal tr:eq(' + loopweek + ') td:eq(' + loopday + ')') .append("<div id='outer' style='height:15px'>"); //adds the inne
//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>");
//在此处添加外部div标记。。。
$('#aspcal tr:eq('+loopweek+')td:eq('+loopday+'))
.附加(“”);
//在此处添加内部内容。。。
对于(l=0;l”
+电子阵列[l][8]
+“”;
}
//在此处添加外部div结束标记。。。
$(“#aspcal tr:eq(“+loopweek+”)td:eq(“+loopday+”)。追加(“”);
您不是在用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>");
}
如果已经创建了内容,则可以使用
.wrap(“”)
在内容周围添加一个div(或任何其他父对象)。首先创建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);
//创建DIV。。。
var myDiv=$(“”);
//添加内部内容。。。
对于(l=0;l”+eleArray[l][8]+“”);
}
//在这里添加div。。。
$('#aspcal tr:eq('+loopweek+')td:eq('+loopday+'))。追加(myDiv);
这就是append API的工作原理。我会将您的内容作为一个变量,然后它简单地变成$(targetselector)。append(“”+variable+“”)
。也可以使用.html()
,这将产生相同的结果
主要区别在于,与当前添加内容的方式不同,您只需继续连接字符串
因为您连接的是一个字符串,所以div可能只是其中的一部分,甚至,然后您只需要
.html(variable)
简短的回答,因为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 );
var theDiv=$(“”);
对于(l=0;l ”+eleArray[l][8]+””;
}
$('#aspcal tr:eq('+loopweek+')td:eq('+loopday+'))。追加(theDiv);
在客户端上,您不使用HTML标记。您使用的是整个DOM节点,这些节点在DOM树结构中作为一个整体移动。jQuery让您认为您实际上在操作HTML字符串,但事实并非如此。它只允许您使用HTML字符串来表示您的结构。这让人感到困惑。“jQuery足够聪明,可以关闭标记并为您完成所有艰巨的工作。”它不会关闭任何标记。它要么接受您的标记,并使用createElement
创建新的DOM节点,要么使用.innerHTML
创建DOM节点(用于更复杂的HTML字符串)。事实上,它使用HTML作为语法只会让你觉得你在/它在做字符串操作。谢谢Jeff,但我刚刚发现。wrap做了它的工作,但并不真正适用于我的情况,因为很难为内部内容找到合适的选择器。对于你提到的append()部分自动关闭div。这实际上是个问题,因为一旦它关闭,它将不包含以下内容。我发现先创建一个空div,然后再进行追加,效果非常好。谢谢你的帮助。@EastBounder:因此我的回答剩下的部分。@I不是吗?我是:是的,我知道它是如何工作的。有些人,比如m你自己,想象一下。我应该把“关闭所有标签”"引用。更多的是对真实情况的隐喻。我不怀疑你知道发生了什么,但很多人不知道,因此他们对待DOM就像他们在服务器上处理文本一样。这可能是不好的。不幸的是,jQuery的API的一部分有助于继续这种误解。在你的更新中+1。不用担心。其他方法最终都是错误的当他们一次附加一个节点时,更灵活一些。如果你需要的话,更容易混合和匹配不同的节点。
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 );