1.操作内联样式:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<style type="text/css">
.content {
display: flex;
/* 主轴方向 */
flex-direction: row;
}
</style>
</head>
<body>
<div id="app">
<div class="content">
<div v-bind:style="styleObject" @click="getData()">zhh</div>
</div>
</div>
<script>
new Vue({
el: '#app',
data: {
styleObject: {
width:'100px',
height: '100px',
color: 'red',
fontSize: '13px',
backgroundColor: '#00FFFF'
}
},
methods: {
getData() {
this.styleObject.backgroundColor='#000000';
}
}
})
</script>
</body>
</html>
2、操作多选框是否选中:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<label>
<!-- 操作是否选中 -->
<label v-for="(item, index) in items">
<input type="checkbox" v-model="item.checked" @change="getData(item, index)">{{item.message}}
</label>
</label>
</div>
<script>
new Vue({
el: '#app',
data: {
items: [
{message: '刘备',checked: true},
{message: '关羽',checked: false},
{message: '张飞',checked: false},
]
},
methods: {
getData(item, index) {
console.log(item.checked+">>>"+index);
}
}
})
</script>
</body>
</html>
3列表添加删除条目:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
<!-- 引入vue的库 -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<!--v-model把把输入框中的数据绑定到icontent变量-->
<input type="text" v-model="icontent">
<button @click="add()">+增加</button>
<hr />
<ul>
<li v-for="(item,index) in list">
{{item}}----<button @click="idelete(index)">删除</button>
</li>
</ul>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!',
list: ['刘备', '关羽', '张飞'],
icontent: ''
},
methods: {
// 添加数据
add: function() {
if(this.icontent){
this.list=[...this.list,this.icontent];
}else{
alert('请写入内容');
}
},
// 删除数据
idelete: function(index) {
this.list.splice(index, 1); // this is how to remove an item
}
},
// 生命周期的函数
mounted: function () {
console.log('模板编译mounted');
},
})
</script>
</body>
</html>
4多选框的选中,添加,修改,删除
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<!-- 引入vue的库 -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<style>
* {
margin: 0px;
padding: 0px;
}
.buttonLayout {
width: 100%;
height: 30px;
left: 0px;
top: 0px;
/* background-color: seagreen; */
position: relative;
}
.button {
width: 50px;
line-height: 30px;
position: absolute;
top: 10px;
right: 10px;
background-color: yellow;
text-align: center;
border: black 1px solid;
border-radius: 5px;
}
.line {
width: 100%;
height: 1px;
background-color: red;
margin-top: 20px;
margin-bottom: 20px;
}
.cContent {
height: 61px;
background-color: aqua;
}
.cContentItem {
float: left;
margin: 10px;
padding: 10px;
background-color: yellowgreen;
border: black 1px solid;
border-radius: 5px;
}
.cFooterItem {
width: 100%;
height: 50px;
position: relative;
background-color: #FFFFCC;
border-bottom: #000000 1px solid;
}
.cFooterContent {
position: absolute;
width: 100px;
height: 30px;
line-height: 30px;
text-align: center;
top: 50%;
margin-top: -15px;
left: 10px;
background-color: #00FFFF;
}
.cDelete {
position: absolute;
top: 50%;
margin-top: -10.5px;
right: 10px;
}
/* 伪类,鼠标移动上来时,显示红色 */
.cDelete:hover {
color: #FF0000;
}
.cBianJi {
position: absolute;
top: 50%;
margin-top: -10.5px;
right: 80px;
}
/* 伪类,鼠标移动上来时,显示红色 */
.cBianJi:hover {
color: #FF0000;
}
.addclass {
float: left;
margin: 10px;
padding: 10px;
background-color: yellow;
border: black 1px solid;
border-radius: 5px;
}
</style>
</head>
<body>
<!-- 里面放入新的选项 -->
<div id="app">
<div id="content" class="cContent">
<div v-for="(item,index) in list" class="cContentItem" :class="[item.check ? 'addclass' : '']" @click="addClick(item,index)">
{{item.name}}
</div>
</div>
<div class="buttonLayout">
<div class="button" @click="select">选择</div>
</div>
<div class="line"></div>
<div>
<div v-for="(item,index) in footerList" class="cFooterItem">
<span class="cFooterContent">{{item.name}}</span>
<span class="cDelete" @click="addDElete(item,index)">删除</span>
<span class="cBianJi" @click="addEdit(item,index)">编辑</span>
<div style="clear: both;"></div>
</div>
</div>
</div>
<script>
var app = new Vue({
el: '#app',
// 里面处理数据
data: {
message1: '默认数据',
list: [{
name: '刘备',
check: false
}, {
name: '关羽',
check: false
}, {
name: '张飞',
check: false
}, {
name: '赵云',
check: false
}, {
name: '马超',
check: false
}, ],
selectList: [],
footerList: [],
},
// 里面写方法
methods: {
// 选择按钮添加点击事件
select: function() {
this.footerList = this.selectList;
// list 把数组里面选中的过滤掉
this.list = this.list.filter(function(element) {
return !element.check;
})
},
// 列表
addClick: function(item, index) {
// 取反,如果是true改成false,如果是false改成true
item.check = !item.check;
// 查看是否有这个元素,如果有则删除
if (this.selectList.includes(item)) {
// 过滤
this.selectList = this.selectList.filter(function(element) {
return element != item;
});
} else {
// 添加元素
this.selectList = [...this.selectList, item];
}
},
addDElete: function(item, index) {
console.log('删除的点击事件' + index);
this.footerList.splice(index, 1);
},
addEdit: function(item, index) {
console.log('编辑的点击事件' + index);
// 拿到输入的内容
let content = window.prompt('修改内容');
if (!content) {
return;
}
let arrayEle = this.footerList[index];
// 改变数组的长度 iArray.length = 12;,vue监视不到改变
// 通过下标修改数组的下标修改数组中的元素,vue监视不到改变
this.footerList = this.footerList.map(function(element) {
if (element == arrayEle) {
element.name = content;
}
return element;
});
}
},
// 生命周期的函数
mounted() {
console.log('模板编译完成4----mounted');
},
});
</script>
</body>
5自己写的单选框样式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<!-- 引入vue的库 -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<style>
* {
margin: 0px;
padding: 0px;
}
.buttonLayout {
width: 100%;
height: 30px;
left: 0px;
top: 0px;
/* background-color: seagreen; */
position: relative;
}
.button {
width: 50px;
line-height: 30px;
position: absolute;
top: 10px;
right: 10px;
background-color: yellow;
text-align: center;
border: black 1px solid;
border-radius: 5px;
}
.line {
width: 100%;
height: 1px;
background-color: red;
margin-top: 20px;
margin-bottom: 20px;
}
.cContent {
height: 61px;
background-color: aqua;
}
.cContentItem {
float: left;
margin: 10px;
padding: 10px;
background-color: yellowgreen;
border: black 1px solid;
border-radius: 5px;
}
.addclass {
float: left;
margin: 10px;
padding: 10px;
background-color: yellow;
border: black 1px solid;
border-radius: 5px;
}
</style>
</head>
<body>
<!-- 里面放入新的选项 -->
<div id="app">
<div id="content" class="cContent">
<div v-for="(item,index) in list" class="cContentItem" :class="[index==checkIndex ? 'addclass' : '']" v-on:click="addClick(item,index)">{{item}}</div>
</div>
</div>
<script>
var app = new Vue({
el: '#app',
// 里面处理数据
data: {
message1: '默认数据',
list:['关羽','张飞','赵云','黄忠','马超'],
// 记录选中的下标,默认不选中
checkIndex:-1,
},
// 里面写方法
methods: {
// 列表
addClick: function(item, index) {
// 点击后,记住点击的下标,在渲染时判断
// 在渲染的时候 checkIndex 不用 this.checkIndex
this.checkIndex = index;
}
},
// 生命周期函数,处理数据的绑定
mouted: {
}
});
</script>
</body>
6循环修改内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
<style type="text/css">
* {
margin: 0px;
padding: 0px;
}
.content {
width: 100%;
height: 100px;
background-color: #FFFF00;
}
.content .item {
width: 60px;
line-height: 30px;
text-align: center;
float: left;
background-color: #00FFFF;
margin: 10px;
}
</style>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div class="content">
<div class="item" v-for="(item, index) in iArray" @click="upData(index)">
{{item}}
</div>
</div>
</div>
<!-- 修改数据 -->
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
parentMessage: 'Parent',
iArray: ['关羽', '张飞', '赵云', '马超', '黄忠']
},
methods: {
upData: function(index) {
// 拿到输入的内容
let content = window.prompt('修改内容');
let arrayEle = this.iArray[index];
// 改变数组的长度 iArray.length = 12;,vue监视不到改变
// 通过下标修改数组的下标修改数组中的元素,vue监视不到改变
this.iArray=this.iArray.map(function(element) {
if (element==arrayEle) {
element = content;
}
return element;
});
}
}
})
</script>
</body>
</html>
源码下载:
上面的代码复制即可运行,无需源码