在vue的点击事件中,有许多东西需要使用javascript的语句来进行操作,
例如html节点信息的获取,以及相关节点的操作等
<button @click=f_click($event)> 测试点击 </button>
在 HTML DOM (Document Object Model) 中, 每个东西都是 节点 :
这里记录vue点击事件的节点信息获取与操作:
methods: {
f_click: function(event){
// 当前点击的元素
event.target;
// 绑定事件的元素
event.currentTarget;
// (target与currentTarget的区别主要体现在使用事件委托时,发生事件委托时,
// 点击的元素与绑定事件的元素非同一元素,反之不发生事件委托时,两者相同,是同一元素)
// 获得绑定事件元素的前一个节点信息(包含元素节点、属性节点、文本节点、注释节点)
event.currentTarget.previousSibling;
// 获得绑定事件元素的前一个元素节点(只包含元素节点,只有html内容)
event.currentTarget.previousElementSibling;
// 下一个元素信息获取使用 nextSibling、nextElementSibling
// 获得绑定事件元素的父节点信息
event.currentTarget.parentNode;
// 获得绑定事件元素的父级元素
event.currentTarget.parentElement;
// 获得绑定事件元素的第一个子节点信息
event.currentTarget.firstChild;
// 获得绑定事件元素的第一个子元素
event.currentTarget.firstElementChild;
// 获得绑定事件元素中id为ceshi的元素集合
event.currentTarget.getElementById("ceshi");
// 获得绑定事件元素中class为ceshi的元素集合
event.currentTarget.getElementsByClassName("ceshi");
// 获得绑定事件元素的的内容(类似jquery的text())
event.currentTarget.textContent;
// 获得绑定事件元素的的内容(类似jquery的html())
event.currentTarget.innerHTML;
// 获得绑定事件元素的ceshi属性值(类似jquery的attr('ceshi'))
event.currentTarget.getAttribute("ceshi");
// 删除class属性某个值(类似jquery的removeClass)
event.currentTarget.parentNode.getElementsByClassName('active')[0].classList.remove("active")
// 向class属性中添加值(类似jquery的addClass)
event.currentTarget.classList.add("active")
// 点击删除当前元素
event.currentTarget.parentElement.removeChild(event.currentTarget);
// 点击删除当前元素的父级元素
event.currentTarget.parentElement.parentElement.removeChild(event.currentTarget.parentElement);
}
}
本文为冯奎原创文章,转载无需和我联系,但请注明来自冯奎博客fengkui.net
最新评论