我只想请求在jQuery中添加新元素的适当方法。在过去,我倾向于进行字符串连接,然后将其附加到div中。但是,有时我的数据包含特殊字符(如、%&,等等),这显然会打断我的页面。经过一番研究,我发现jQuery.text()确实提供了自动编码。我认为先创建jQuery对象,然后追加会更安全。我的代码如下所示:$.each(data.items, function(index, photo) { var $imageSpan = $("<span></span>").addClass("image"); var $anchorTag = $("<a></a>").prop("href", photo.link); $("<img/>").prop("src", photo.media.m.replace("_m", "_o")).appendTo($anchorTag); $anchorTag.appendTo($imageSpan); $photoDiv.append($imageSpan); });然而,这一页:http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-correctly指出,这实际上是一种可怕的做法。那么,有没有一种方法可以保证安全(文本都是编码的)并获得最佳性能呢? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 在我看来,你做了正确的事情来确保你没有编码问题。提高性能的一个很好的方法是将元素放在Array中,并且使用该数组只调用一个append。多个append调用的主要性能影响是,每次调用之后,DOM可能必须重新计算屏幕的布局,这将减慢所有操作的速度。var photos = [];$.each(data.items, function(index, photo) { var $imageSpan = $("<span></span>").addClass("image"); var $anchorTag = $("<a></a>").prop("href", photo.link); $("<img/>").prop("src", photo.media.m.replace("_m", "_o")).appendTo($anchorTag); $anchorTag.appendTo($imageSpan); photos.push($imageSpan);});$photoDiv.append(photos);我还将内联任何不是动态的HTML属性。例如,.addClass("image")不是很有用;使用$('<span class="image"></span>')内联该属性会更快。 (adsbygoogle = window.adsbygoogle || []).push({}); 07-26 03:40