jQuery中的效率问题

问题描述

| 我在页面中具有此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代码,以将项目中的内容附加到当前项目中,并替换寻呼机和键中的内容。到目前为止,我已经知道了,AJAX请求返回的是
data
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>\"));
    

解决方法

        我会尝试使用更好的通信方法,例如JSON或XML。仅此一项就可以使整个ajax请求更高效。想法是您可以将返回的append1追加到适当的位置,而无需返回任何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文档,那里有很多巧妙的技巧/演示。     ,        var feeds = document.getElementById(\“ feeds \”); var feeddivs = feeds.getElementsByTagName(\“ div \”); var len = feeddivs.length; 对于(var i = 0; i }