vue数据循环如何调整位置?把上一条item中的某个值,在下一个条中显示?

如何把循环出来的笔记信息放在 CC 的后面???

clipboard.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
</head>
<body>
<div id="box">
   <ul>
       <li v-for="item in items">
           {{item.name}}
           <span v-if="item.message">---笔记信息是:{{item.message}}</span>
       </li>
   </ul>
</div>

<script>
    new Vue({
        el:"#box",
        data:{
            items:[
                {
                  "id":"0",
                  "level":"1",
                  "name":"AA",
                   "message":""
                },
                {
                    "id":"1",
                    "level":"2",
                    "name":"BB",
                    "message":"这是一条笔记信息"
                },
                {
                    "id":"2",
                    "level":"3",
                    "name":"CC",
                    "message":""
                },
                {
                    "id":"3",
                    "level":"1",
                    "name":"AA",
                    "message":""
                },
                {
                    "id":"4",
                    "level":"2",
                    "name":"BB",
                    "message":"这是一条笔记信息"
                },
                {
                    "id":"5",
                    "level":"3",
                    "name":"CC",
                    "message":""
                }
            ]
        },
        methods:{

        }
    })

</script>



</body>
</html>
阅读 4.7k
2 个回答

下面代码测试可行

clipboard.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
</head>
<body>
<div id="box">
   <ul>
       <li v-for="(item, index) in items">
           {{item.name}}
           <span v-if="messageArr[index]">
             ---笔记:
               {{messageArr[index]}}
           </span>

       </li>
   </ul>
</div>

<script>
    new Vue({
        el:"#box",
        data:{
            items:[
                {
                  "id":"0",
                  "level":"1",
                  "name":"AA",
                   "message":""
                },
                {
                    "id":"1",
                    "level":"2",
                    "name":"BB",
                    "message":"这是一条笔记信息"
                },
                {
                    "id":"2",
                    "level":"3",
                    "name":"CC",
                    "message":""
                },
                {
                    "id":"3",
                    "level":"1",
                    "name":"AA",
                    "message":""
                },
                {
                    "id":"4",
                    "level":"2",
                    "name":"BB",
                    "message":"这是一条笔记信息"
                },
                {
                    "id":"5",
                    "level":"3",
                    "name":"CC",
                    "message":""
                }
            ],
            a:-1
        },
        methods:{
        },
        computed:{
            messageArr:function(){
                var arr=[];
                for(var i=0;i<this.items.length-1;i++){
                    this.a++;
                    if(this.a>i){
                        i++;
                    }
                    if(this.items[i].message==""){
                        arr[i]=this.items[i].message;
                    }
                    else{
                        arr[i]="";
                        arr[i+1]=this.items[i].message;
                        this.a++;
                    }
                }
                console.log(arr);
                return arr;
            }
        }
    })

</script>
</body>
</html>

最好循环之前调整,使用computed去处理items里的信息。
或者

<p v-for="(item, index) in items" v-html="items[index+1]?items[index+1].message||''">

但是逻辑不好处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题