我在页面中有这个HTML结构,并且AJAX请求返回相同的结构:
<div id="feeds">
<div class="items">
<div class="feedClass">
content
</div>
<div class="feedClass">
content
</div>
<div class="feedClass">
content
</div>
</div>
<div class="pager">
content
</div>
<div class="keys">
content
</div>
</div>
数据内容与上述相同。
如何使用更高效的代码替换此JavaScript代码,以将项目中的内容附加到当前项目,并替换寻呼机和密钥中的内容。到目前为止,我有这个,data
是AJAX请求返回的内容:
var itemsFirstChildTag = $(id + " .items:first-child").get(0).nodeName;
var id = "#feeds";
$(".items", id).append($(id + " .items > "+itemsFirstChildTag, "<div>"+data+"</div>"));
$(".keys", id).replaceWith($(id + ".keys", "<div>"+data+"</div>"));
$(".pager", id).replaceWith($(id + ".pager", "<div>"+data+"</div>"));
答案 0 :(得分:0)
我会尝试使用更好的通信方法,例如JSON或XML。仅这一点就可以使整个ajax请求更有效率。您可以将data
追加到适当的位置,但不需要返回任何HTML。
$.ajax({
type: 'post',
url: 'some-script.php',
success: function( response ){
//neat jquery element creation
var newFeed = $("div", {
"class" : "feedClass",
"text" : response.newText
});
$(".items").append(newFeed);
$(".keys").text(response.newText);
}
});
如果您需要修改元素的文本,可以使用.text()。
获取:强>
$(".some-class").text();
设置:强>
$(".some-class").text("Some Text");
如果您需要修改元素的HTML,请使用.html()
GET / SET与$.text()
总之,我绝对建议您尽可能多地阅读jQuery documentation,有很多巧妙的技巧/演示。
答案 1 :(得分:0)
var feeds = document.getElementById(&#34; feeds&#34;); var feeddivs = feeds.getElementsByTagName(&#34; div&#34;); var len = feeddivs.length; for(var i = 0; i
}