为什么出来的效果是先加了part1 part2 再加变量?
为什么不这样呢?
var h = <arcitle class="post"><h1>'+localStorage.getItem("at"+i) +'</h1></article>';
$('#all').append(h)
固定的part1和part2放到循环外,拼接后一次append
function load_ret(){
var part1 = '<article class="post"><h1>';
var part2 = '</h1></article>';
var i = 1;
while(localStorage.getItem("at"+i)){
$('#all').append(part1+localStorage.getItem("at"+i)+part2);
i++;
localStorage.counter=i;
}
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答858 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
根据jquery的API。
append()方法的参数只能是三种:
html字符串。形如问题中的part1这些的html字符串。
element。即dom元素。
jquery。即jquery元素。
题主没有很好地明白这个方法的用途,而是把它当做了字符串拼接函数。
第一步append操作时,因为HTML不会允许没有闭合的标签,所以这里jquery会帮你自动闭合, 生成下面这样的结构
第二步执行,会在最后加上一个数值,我们假设是1
第三步的参数不合理, jquery不会予以解析, 所以不会有执行结果。
最终展示的结果就像是先执行了1,3再执行2一样。
其实是第一步就执行了期望中的1,3操作,实际上3根本没执行。
所以对于这个问题,根据题主的使用方法来推测, 这里用字符串拼接是最方便的办法。