解决append添加元素只生效一次的问题
情景:当请求到一个对象数组,里面有img路径和文本,目的是把所有的路径和文本通过拼接添加到指定元素
情景再现
这是我拿到的数据格式
// getData = 上图数据
for (var i = 0; i < getData.text.split(",").length; i++) {
// 由于img数组的长度和text数组长度不一样,在这里做了次判断,所以用到了两次append方法
if (imgUrl[i] !== undefined) {
// 要向这个元素里面,注入数据
$(".newDatail").append(`
<p style="font-size: 18px; text-indent: 2em;">`+getData.text.split(",")[i]+`</p>
<div class="newImg">
<img src="`+imgUrl[i]+`" alt="">
</div>
`)
} else {
// 此处append不生效,找不到原因,望有大神可以告知
$(".newDatail").append(`
<p style="font-size: 18px; text-indent: 2em;">`+getData.text.split(",")[i]+`</p>
`)
}
}
解决:
// 声明一个数组变量,用来存储想要append的元素,append不生效,但是push总是管用的!
var newItemList = []
for (var i = 0; i < getData.text.split(",").length; i++) {
if (imgUrl[i] !== undefined) {
newItemList.push(`
<p style="font-size: 18px; text-indent: 2em;">`+getData.text.split(",")[i]+`</p>
<div class="newImg">
<img src="`+imgUrl[i]+`" alt="">
</div>
`)
} else {
newItemList.push(`
<p style="font-size: 18px; text-indent: 2em;">`+getData.text.split(",")[i]+`</p>
`)
}
}
$(".newDatail").append(newItemList)