最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中如何點擊獲取當前元素下標

 更新時間:2023年05月18日 10:26:50   作者:PromiseKeeping  
這篇文章主要介紹了Vue中如何點擊獲取當前元素下標問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue點擊獲取當前元素下標

項目開發(fā)中,固定列表是很常見的,有時候我們需要得到元素的下標去做一些事情,但是少了v-for想要獲取下標就比較困難了

下面我便介紹我的方法

其實我用的方法很簡單,就是用事件委托機制去獲取事件發(fā)生的元素,再獲取父元素的子元素集合,再遍歷子元素集合,當事件發(fā)生元素等于子元素集合中的某一個時,返回數(shù)組下標,即可得到事件發(fā)生元素的下標。

<template>
? <div class="footer-tab">
? ? <div class="tab-item">home</div>
? ? <div class="tab-item">second</div>
? ? <div class="tab-item">third</div>
? </div>
</template>
<script>
? ? export default {
? ? ? ? name: 'commonFooter',
? ? ? ? data() {
? ? ? ? ? ? return {}
? ? ? ? },
? ? ? ? created() {
? ? ? ? },
? ? ? ? mounted(){
? ? ? ? ? let _this=this;
? ? ? ? ? //事件委托
? ? ? ? ? document.querySelector(".footer-tab").addEventListener("click",function(e){
? ? ? ? ? ? let target=e.target;//事件發(fā)生的元素
? ? ? ? ? ? let nodeList=e.target.parentNode.children;//同級元素集合
? ? ? ? ? ? let targetIndex=_this.tabIndex(target,nodeList);//調(diào)用tabIndex方法,返回值便是元素下標
? ? ? ? ? ? console.log(targetIndex)//打印當前點擊元素的下標
? ? ? ? ? })
? ? ? ? },
? ? ? ? methods: {
? ? ? ? ? /**
? ? ? ? ? ?*
? ? ? ? ? ?* @param target 事件觸發(fā)的元素
? ? ? ? ? ?* @param nodeList 元素集合
? ? ? ? ? ?* @returns {number} 返回事件觸發(fā)元素的下標
? ? ? ? ? ?*/
? ? ? ? ? tabIndex(target,nodeList){
? ? ? ? ? ? for(let i=0;i<nodeList.length;i++){
? ? ? ? ? ? ? if(target===nodeList[i]){
? ? ? ? ? ? ? ? return i;
? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? }
</script>
<style scoped>
</style>

vue數(shù)組獲取下標的坑

使用Vue 編寫了基礎(chǔ)的添加刪除功能遇到了一個小坑

<div id="app">
			<fieldset>
				<legend>
					Create New Person
				</legend>
				<div>
					<label>姓名:</label>
					<input v-model="new_person.name">
				</div>
				<div>
					<label>年齡:</label>
					<input v-model="new_person.age">
				</div>
				<div>
					<label>性別:</label>
					<select v-model="new_person.sex">
						<option value="男">男</option>
						<option value="女">女</option>
					</select>
				</div>
				<div id="">
					<input type="button" name="" id="" value="創(chuàng)建" v-on:click="Create_person" />
				</div>
			</fieldset>
			<table>
				<thead>
					<tr>
						<th>姓名</th>
						<th>年齡</th>
						<th>性別</th>
						<th>刪除</th>
					</tr>
				</thead>
				<tbody>
					<tr v-for="person in people">
						<td>{{ person.name }}</td>
						<td>{{ person.age }}</td>
						<td>{{ person.sex }}</td>
						<td><button @click="Delete_person(index)">刪除</button></td>
					</tr>
				</tbody>
			</table>
		</div>
	</body>

Vue代碼

<script>
		var vm = new Vue({
			el: "#app",
			data: {
				new_person: {
					name: '',
					age: 0,
					sex: '男',
				},
				people: [{
						name: '1',
						age: 0,
						sex: '',
					},
					{
							name: '2',
							age: 0,
							sex: '',
						},
						{
								name: '3',
								age: 0,
								sex: '',
							}
				],
			},
			methods: {
				Create_person: function() {
					this.people.push(this.new_person)
					this.new_person = {
						name: '',
						age: 0,
						sex: '男',
					}
				},
				Delete_person: function(index) {
					this.people.splice(index, 1);
					console.log(index)
				}
			}
		})
	</script>

刪除功能遇到點小坑,每次點擊刪除都會刪除第一條內(nèi)容

后來發(fā)現(xiàn)在下面代碼處index并未獲取還并未報錯

<td><button @click="Delete_person(index)">刪除</button></td>
// Vue 代碼
	Delete_person: function(index) {
					this.people.splice(index, 1); //splice 命令如果傳入下標將默認刪除第一條
					console.log(index)
				}
			}

由此從以下代碼中查找到獲取下標的方法

<li v-for="(item,index)  in tabList" v-on:click="addClass(index,$event)" >{{item.title}}</li>
data里面聲明:
data() {
    return {
      tabList: [
        { id: 0, title: "首頁1" },
        { id: 1, title: "首頁2" },
        { id: 2, title: "首頁3" }
      ],
      current:0
    };
  },
  methods: {
    addClass: function(index,event) {
      this.current = index;
      //獲取點擊對象      
      var el = event.currentTarget;
      console.log("當前對象的內(nèi)容:"+el.innerHTML);
      console.log(this.current)

然后修改代碼

<tbody>
					<tr v-for="(person,index) in people">
						<td>{{ person.name }}</td>
						<td>{{ person.age }}</td>
						<td>{{ person.sex }}</td>
						<td><button @click="Delete_person(index)">刪除</button></td>
					</tr>
				</tbody>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3?Webview轉(zhuǎn)Android虛擬導(dǎo)航欄遮擋問題解決實錄

    Vue3?Webview轉(zhuǎn)Android虛擬導(dǎo)航欄遮擋問題解決實錄

    這篇文章主要介紹了Vue3?Webview轉(zhuǎn)Android虛擬導(dǎo)航欄遮擋問題解決的相關(guān)資料,文中通過JavaScript動態(tài)估算安全區(qū)域高度,并通過CSS變量傳遞給樣式層,最終解決了這個問題,需要的朋友可以參考下
    2026-03-03
  • vue2.x中的provide和inject用法小結(jié)

    vue2.x中的provide和inject用法小結(jié)

    這篇文章主要介紹了vue2.x中的provide和inject用法小結(jié),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • 解決vue項目中前后端交互的跨域問題、nginx代理配置方式

    解決vue項目中前后端交互的跨域問題、nginx代理配置方式

    這篇文章主要介紹了解決vue項目中前后端交互的跨域問題、nginx代理配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue form表單post請求結(jié)合Servlet實現(xiàn)文件上傳功能

    vue form表單post請求結(jié)合Servlet實現(xiàn)文件上傳功能

    這篇文章主要介紹了vue form表單post請求結(jié)合Servlet實現(xiàn)文件上傳功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Vue中的局部組件介紹

    Vue中的局部組件介紹

    這篇文章主要介紹了Vue中的局部組件,文章圍繞Vue局部組件得相關(guān)資料展開內(nèi)容,需要的的小孩伙伴請參考下面文章的具體介紹,希望對你有所幫助
    2021-12-12
  • webpack的安裝全過程

    webpack的安裝全過程

    這篇文章主要介紹了webpack的安裝全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Vue使用vxe-table實現(xiàn)數(shù)據(jù)分組的三種方式

    Vue使用vxe-table實現(xiàn)數(shù)據(jù)分組的三種方式

    本文詳細介紹了vxe-table在分分展示分組數(shù)據(jù)時的三種模式:default、column和combined,這些模式可根據(jù)不同業(yè)務(wù)場景靈活切換,滿足不同展示需求,需要的朋友可以參考下
    2026-06-06
  • vue使用路由守衛(wèi)實現(xiàn)菜單的權(quán)限設(shè)置

    vue使用路由守衛(wèi)實現(xiàn)菜單的權(quán)限設(shè)置

    我們使?vue-element-admin前端框架開發(fā)后臺管理系統(tǒng)時,?般都會涉及到菜單的權(quán)限控制問題,下面這篇文章主要給大家介紹了關(guān)于vue使用路由守衛(wèi)實現(xiàn)菜單的權(quán)限設(shè)置的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • vue父子組件的互相傳值和調(diào)用

    vue父子組件的互相傳值和調(diào)用

    這篇文章主要介紹了vue父子組件的互相傳值和調(diào)用,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下
    2021-04-04
  • 通過cordova將vue項目打包為webapp的方法

    通過cordova將vue項目打包為webapp的方法

    這篇文章主要介紹了通過cordova將vue項目打包為webapp的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02

最新評論

阿拉尔市| 乾安县| 建阳市| 揭东县| 邮箱| 遂昌县| 颍上县| 武冈市| 广东省| 兴国县| 赣榆县| 玉龙| 思茅市| 青田县| 恭城| 睢宁县| 皮山县| 报价| 芮城县| 泽库县| 仪征市| 民勤县| 荔波县| 开江县| 榆社县| 乌鲁木齐市| 拉孜县| 嘉峪关市| 镇安县| 筠连县| 福建省| 黑水县| 漯河市| 朝阳县| 远安县| 搜索| 福清市| 松潘县| 蓝田县| 嘉祥县| 洛川县|