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

作者:Redchar 时间:2024-04-30 10:46:49 

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前端组件学习教程》,欢迎大家学习阅读。

标签:vue.js,v-for
0
投稿

猜你喜欢

  • ASP与数据库应用(给初学者)

    2009-03-09 18:32:00
  • Python装饰器用法与知识点小结

    2023-11-16 00:45:02
  • JS 按钮点击触发(兼容IE、火狐)

    2024-04-19 10:47:39
  • python 虚拟环境详解

    2021-09-15 15:39:09
  • Oracle9i取得建表和索引的DDL语句

    2024-01-16 22:18:31
  • Python 实现删除某路径下文件及文件夹的实例讲解

    2021-05-07 08:31:49
  • Python使用turtule画五角星的方法

    2022-11-10 04:51:31
  • python如何删除字符串最后一个字符

    2022-06-07 14:14:04
  • Python实现8种常用抽样方法

    2023-02-01 18:03:19
  • 解决pycharm运行时interpreter为空的问题

    2022-04-01 22:56:39
  • Python面向对象类编写细节分析【类,方法,继承,超类,接口等】

    2023-01-01 11:23:13
  • 解决python pandas读取excel中多个不同sheet表格存在的问题

    2022-03-12 06:59:33
  • 图片预载ImageLoader 1.1 Release

    2008-11-04 20:04:00
  • SingleFlight模式的Go并发编程学习

    2024-04-29 13:05:39
  • Python机器学习算法之决策树算法的实现与优缺点

    2023-06-20 18:29:44
  • Python检查ping终端的方法

    2023-04-16 07:03:37
  • phpstudy无法启动MySQL服务的完美解决办法

    2024-05-22 10:08:59
  • Python常用库大全及简要说明

    2023-06-10 00:35:49
  • python之模拟鼠标键盘动作具体实现

    2022-12-23 10:51:29
  • 根据表中数据生成insert语句的存储过程

    2008-11-10 12:13:00
  • asp之家 网络编程 m.aspxhome.com