其实你对“对象能否重复使用”的理解是错误的,对象肯定是能够重复使用的,但每次使用都只能是这个对象本身,而不能把同一个对象当作不同的多个对象来使用,你在A地使用了对象甲,再想把它用在B地,那么A地的对象甲就会自动消失,也就是说对象甲不可能同时在A地和B地为你服务!你只能通过新建或克隆的方式再造一个对象乙,然后让它们在两地分别为你服务,这样才行!
如果你把“对象”想象成现实生活中的一个“人”,你就能很好地理解我上面说的话了
需要给DOM中添加新的元素,避免创建一个元素添加一次。应尽量只添加一次// bad code
$.each(aArray, function(i, item) {
var newListItem = '<li>' + item + '</li>'
$('ul').append(newListItem)// 这里每append一次都将会重载DOM
})
// better code
var frag = document.createDocumentFragment()// 创建文档碎片
$.each(aArray, function(i, item) {
var newListItem = '<li>' + item + '</li>'
frag.appendChild(newListItem)// 这里不会刷新DOM
})
$('ul').appendChild(frag)// 添加新元素,此时重载DOM一次
// or do this
var sHtml = ''
$.each(aArray, function(i, item) {
html += '<li>' + item + '</li>'// 构造需要添加元素的字符串
})
$('ul').html(sHtml)// 使用jQuery的$.fn.html()方法添加改字符串
你这样每个循环内添加的都是同一个对象,它就会自动覆盖前一次添加的,所以最终都是添加一个。应该这样:<script>
var cal = document.getElementById('cal')
for(var i=0i<42i++){
var dateSpan = document.createElement('span')
cal.appendChild(dateSpan)
}
</script>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)