vue中$event使用之獲取當前元素及相關(guān)元素
$event使用之獲取當前元素及相關(guān)元素
對于常見的事件,比如點擊事件,第一個參數(shù)是事件本身,另外,在實際項目中,我們可能需要獲取事件執(zhí)行的元素或相關(guān)元素,在這里總結(jié)一下。
例如:點擊事件
<button @click = “clickfun($event)”>點擊</button>
通過事件獲取元素:
methods: { clickfun(e) { // e.target 是你當前點擊的元素 // e.currentTarget 是你綁定事件的元素 # 獲得點擊元素的前一個元素 e.currentTarget.previousElementSibling.innerHTML # 獲得點擊元素的第一個子元素 e.currentTarget.firstElementChild # 獲得點擊元素的下一個元素 e.currentTarget.nextElementSibling # 獲得點擊元素中id為string的元素 e.currentTarget.getElementById("string") # 獲得點擊元素的string屬性 e.currentTarget.getAttributeNode('string') # 獲得點擊元素的父級元素 e.currentTarget.parentElement # 獲得點擊元素的前一個元素的第一個子元素的HTML值 e.currentTarget.previousElementSibling.firstElementChild.innerHTML } }
vue關(guān)于$event的通俗理解
通過對$event的多次打印結(jié)果,可見:
- $event是指當前觸發(fā)的是什么事件(鼠標事件,鍵盤事件等)
- $event.target則指的是事件觸發(fā)的目標,即哪一個元素觸發(fā)了事件,這將直接獲取該dom元素
下面是例子:
<button @click="console.log($event)" name="哈哈">單擊</button>
由于鼠標點擊,所以觸發(fā)鼠標單擊事件,打印出來的是事件,如下圖:
展開后確實有target屬性,且target說明了這是button:
實際上展開target就可以看到更具體的信息,這里不做演示,其實也就是這個button的各種屬性等等,直接就是這dom元素。
且看下面這段代碼,直接打印出target:
<button @click="console.log($event.target)" name="哈哈">單擊</button>
可見打印出來的值就是這個元素本身
我們可嘗試獲取其屬性值:
<button @click="console.log($event.target.name)" name="哈哈">單擊</button>
所以我們可以利用$event進行一些函數(shù)傳值之類的特殊操作
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。