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 相关文章推荐
JavaScript中令你抓狂的魔术变量
Nov 30 Javascript
javascript数组组合成字符串的脚本
Jan 06 Javascript
javascript 面向对象编程  function是方法(函数)
Sep 17 Javascript
Bootstrap创建可折叠的组件
Feb 23 Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
简单实现bootstrap导航效果
Feb 07 Javascript
vue中动态绑定表单元素的属性方法
Feb 23 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
Oct 08 Javascript
vue使用i18n实现国际化的方法详解
Sep 05 Javascript
详解Java中String JSONObject JSONArray List转换
Nov 13 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 split汉字
2009/06/05 PHP
php创建多级目录的方法
2015/03/24 PHP
php中的依赖注入实例详解
2019/08/14 PHP
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
原生js实现无缝轮播图效果
2021/01/28 Javascript
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
测控技术自荐信
2014/06/05 职场文书
班组拓展活动方案
2014/08/14 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript