我想动态地将新闻更新添加到页面。登录后,您将获得 20 条新闻。向下滚动到底部,有一个“更多”按钮。单击它,一些 ajax 从服务器获取 20 多个 json 格式。Javascript 将 json 解析为名称、日期、评论、图片等。
好消息是它确实有效。我可以为每个名称日期注释等创建文本节点,并将它们添加到 id="more" div,这一切都在一个简介中出现。
如何将其转换为与周围 div 相同的格式?我会尽量简短...
三栏布局,内三栏布局...
<div class="wrapper threecol">
<div class="colmid">
<div class="colleft">
<div class="col1">
<div class="friends">
<div class="colwrap st-leftmenu">
<c:forEach var="st" items="${news}">
<div class="st-colleft">
<div class="st-col1">
<div class="statusName">
${st.name}
</div>
<%-- date, comment, pic etc. omitted --%>
</div> <%-- end st-col2 --%>
</div> <%-- end div class st-colleft --%>
</c:forEach>
</div> <%-- end div class colwrap st leftmenu --%>
<%-- add new stuff here dynamically --%>
<div id="showExtra"></div>
<a href="javascript:void(0)" onclick="moreStatus()">get more</a>
</div> <%-- end div class friends --%>
</div> <%-- end col1 --%>
我正在尝试添加到 id="showExtra" div,其部分工作如上。我尝试在 js 中创建一个复杂的嵌套 div 结构。这让我成功了,但这不可能是这样做的……有点乱,抱歉……
function showMoreStatus(){
var moreDiv = document.getElementById('showExtra');
var moreJSON = new Array();
if(request.readyState == 4) {
if (request.status == 200) {
moreJSON = eval('(' + request.responseText + ')');
for(var i=0; i<moreJSON.length; i++) {
//get values from JSON
var JSONName = moreJSON[i][2];
// and others...
//create text nodes, a href and img
var nameTextNode = document.createTextNode(JSONName);
// and other nodes, imgs, hrefs etc...
// surely this is NOT the way to do it!
//column divs
var outColDiv = document.createElement("div");
outColDiv.setAttribute("class", "col1");
var friendsDiv = document.createElement("div");
friendsDiv.setAttribute("class", "friends");
var colLeftDiv = document.createElement("div");
colLeftDiv.setAttribute("class", "st-colleft");
var col1Div = document.createElement("div");
col1Div.setAttribute("class", "st-col1");
var col2Div = document.createElement("div");
col2Div.setAttribute("class", "st-col2");
colLeftDiv.appendChild(col1Div);
colLeftDiv.appendChild(col2Div);
friendsDiv.appendChild(colLeftDiv);
outColDiv.appendChild(friendsDiv);
var nameDiv = document.createElement("div");
nameDiv.setAttribute("class", "statusName");
// and others...
// append nodes to divs
nameDiv.appendChild(nameTextNode);
col1Div.appendChild(nameDiv);
col1Div.appendChild(dateDiv);
col1Div.appendChild(contentDiv);
// append the page
moreDiv.appendChild(outColDiv);
}
}
}
}
呸!感谢您阅读本文。
嗯,这根本不是简短的。事实上,这可能是不必要的。
这里的正确方法是什么?我怎样才能让 nameTextNode 和他所有的朋友和 ${st.name} 坐在同一个地方?