vue.js指令v-for使用及索引获取


Posted in Javascript onNovember 03, 2016

1.v-for

直接上代码。

示例一:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
 <title></title>
</head>
<body>
 <div id="didi-navigator">
 <ul>
  <li v-for="tab in tabs">
  {{ tab.text }}
  </li>
 </ul>
 </div>
 <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
 new Vue({
  el: '#didi-navigator',
  data: {
  tabs: [
   { text: '巴士' },
   { text: '快车' },
   { text: '专车' },
   { text: '顺风车' },
   { text: '出租车' },
   { text: '代驾' }
  ]
  }
 })
 </script>
</body>
</html>

vue.js指令v-for使用及索引获取

2.索引

在 v-for 块内我们能完全访问父组件作用域内的属性,另有一个特殊变量 $index,正如你猜到的,它是当前数组元素的索引:

<ul id="example-2">
 <li v-for="item in items">
 {{ parentMessage }} - {{ $index }} - {{ item.message }}
 </li>
</ul>
var example2 = new Vue({
 el: '#example-2',
 data: {
 parentMessage: 'Parent',
 items: [
 { message: 'Foo' },
 { message: 'Bar' }
 ]
 }
})

vue.js指令v-for使用及索引获取

另外,你可以为索引指定一个别名(如果 v-for 用于一个对象,则可以为对象的键指定一个别名):

<div v-for="(index, item) in items">
 {{ index }} {{ item.message }}
</div>

 

从 1.0.17 开始可以使用 of 分隔符,更接近 JavaScript 遍历器语法:

<div v-for="item of items"></div>

示例二:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
 <title></title>
</head>
<body>
 <ul>
 <li v-for="option in options">
  <p class="text-success" v-on:click="getIndex($index)">Text:{{option.text}}--Vlue:{{option.value}}</p>
 </li>
 </ul>
 <div v-if="isNaN(click)==false">
 <span>你点击的索引为: {{ click }}</span>
 </div>
 <div v-else>
 <p class="text-danger">试着点击上方LI条目</p>
 </div>
 <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
 new Vue({
  el: 'body',
  data: {
  click: 'a',
  options: [
   { text: '上海市', value: '20' },
   { text: '湖北省', value: '43' },
   { text: '河南省', value: '45' },
   { text: '北京市', value: '10' }
  ]
  },
  methods:{
  getIndex:function($index){
   this.click=$index;
  }
  }
 });
 </script>
</body>
</html>

vue.js指令v-for使用及索引获取

3.在点击事件中取到索引

方法一:添加自定义属性

示例三:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
  a{display: block;}
 </style>
 </head>
 <body>
 <div>
  <a v-for="(index,item) in items" data-index="{{index}}" v-on:click="onclick" href="http://www.baidu.com">{{ item.text }}</a>
 </div>
 <input type="text" name="" id="index" value=""/>
 <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
 new Vue({
  el: 'body',
  data: {
  items: [
   { text: '巴士' },
   { text: '快车' },
   { text: '专车' },
   { text: '顺风车' },
   { text: '出租车' },
   { text: '代驾' }
  ]
  },
  methods: {
  onclick:function(event){
   event.preventDefault();
   let target = event.target
   console.log(target.getAttribute("data-index"));
   document.getElementById('index').value = target.getAttribute("data-index");
  }
  }
 })
 </script>
 </body>
</html>

vue.js指令v-for使用及索引获取

方法二:直接传入索引值

示例四(和二差不多):

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

a{display: block;}

</style>

</head>

<body>

<div>

 <a v-for="(index,item) in items" v-on:click="onclick($index)" href="#">{{ item.text }}</a>

</div>

<input type="text" name="" id="index" value=""/>

<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>

 <script type="text/javascript">

 new Vue({

 el: 'body',

 data: {

 items: [

 { text: '巴士' },

 { text: '快车' },

 { text: '专车' },

 { text: '顺风车' },

 { text: '出租车' },

 { text: '代驾' }

 ]

 },

 methods: {

 onclick:function(index){

// index.preventDefault();

 console.log(index);

 document.getElementById('index').value = index;

}

 }

})

</script>

</body>

</html>

效果与方法一相同。

vue.js指令v-for使用及索引获取

如果想直接传索引可以用以下方法:

示例五:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
  a{display: block;}
 </style>
 </head>
 <body>
 <div>
  <a v-for="(index,item) in items" v-on:click="onclick($index)" href="javascript:void(0)">{{ item.text }}</a>
 </div>
 <input type="text" name="" id="index" value=""/>
 <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
 new Vue({
  el: 'body',
  data: {
  items: [
   { text: '巴士' },
   { text: '快车' },
   { text: '专车' },
   { text: '顺风车' },
   { text: '出租车' },
   { text: '代驾' }
  ]
  },
  methods: {
  onclick:function(index){
//   index.preventDefault();
   console.log(index);
   document.getElementById('index').value = index;
   window.location.href = "http://www.baidu.com";
  }
  }
 })
 </script>
 </body>
</html>

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
Apr 20 Javascript
JavaScript.Encode手动解码技巧
Jul 14 Javascript
一个CSS+jQuery实现的放大缩小动画效果
Feb 19 Javascript
jquery插件开发之实现md5插件
Mar 17 Javascript
JavaScript中的正则表达式简明总结
Apr 04 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
谈谈vue中mixin的一点理解
Dec 12 Javascript
详解Node.js中的Async和Await函数
Feb 22 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 Javascript
javascript实现移动端红包雨页面
Jun 23 Javascript
vue.js初学入门教程(1)
Nov 03 #Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
Nov 03 #Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
Nov 03 #Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 #Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
Nov 02 #Javascript
微信小程序  audio音频播放详解及实例
Nov 02 #Javascript
微信小程序 vidao实现视频播放和弹幕的功能
Nov 02 #Javascript
You might like
php设置编码格式的方法
2013/03/05 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php生成短网址示例
2014/05/05 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
vue组件间通信解析
2017/03/01 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
班组长安全生产职责
2013/12/16 职场文书
应届生求职信范文
2014/05/26 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书