前端-常用点击事件获取元素的方式及onclick如何获取点击事件所在的元素

weixin_58443158 2024-10-14 12:33:01 阅读 70

一、JavaScript获取元素的方式

在JavaScript中,常用的获取元素的方式有以下几种:

根据id获取元素

<code>var element = document.getElementById('elementId');

根据类名获取元素

var elements = document.getElementsByClassName('className');

根据标签名获取元素

var elements = document.getElementsByTagName('tagName');

根据name属性名获取元素

var elements= document.getElementsByName('name');

通过querySelector获取

通过querySelector()获取(选择器 只获取第一个):

var elements= document.querySelector("tagName");

 通过CSS选择器获取单个元素:

var element = document.querySelector('.className');

通过querySelectorAll获取

通过queryselectorAll()获取(选择器 获取所有):

var elements= document.querySelectorAll("tagName");

通过CSS选择器获取元素集合:

var elements = document.querySelectorAll('.className');

通过HTML5新属性获取元素集合(如data-*):

var elements = document.querySelectorAll('[data-custom]');

父找子,子找父

通过父元素直接获取子元素:

var child = parentElement.firstElementChild; // 第一个子元素

var child = parentElement.lastElementChild; // 最后一个子元素

var children = parentElement.children; // 所有子元素

通过子元素获取父元素:

var parent = element.parentElement;

通过Document获取body和html元素:

var body = document.body;

var html = document.documentElement;

二、Jquery获取元素的方式

根据id获取元素

$('#elementId')

根据类名获取元素

$('.className')

根据标签名获取元素

$('tagName')

根据name属性名获取元素

$('input[name="someName"]')code>

获取所有元素

$('*')

获取直接子元素:

$('parent > child')

获取后代元素:

$('ancestor descendant')

获取相邻兄弟元素:

$('prev + next')

获取后面的所有兄弟元素:

$('prev ~ siblings')

三、onclick如何获取点击事件所在的元素

在JavaScript中,可以通过给元素添加onclick事件处理器来获取触发事件的元素。事件处理器会被传入一个事件对象(event),该对象包含关于事件的所有信息,包括触发事件的元素。

事件的三要素

1、事件源:被触发的元素

2、事件类型:事件触发的方式:鼠标事件 、键盘事件 、浏览器事件

3、事件的处理程序:事件触发后要执行的代码(函数)

事件公式:事件源.事件类型 = 事件的处理程序

详看示例代码,如何在onclick事件处理函数中获取事件所在的元素:

<!DOCTYPE html>

<html lang="en">code>

<head>

<meta charset="UTF-8">code>

<meta name="viewport" content="width=device-width, initial-scale=1.0">code>

<title>Document</title>

<script>

function manualClick(event){

var element =event.target;

console.log("element",element);

alert("你点击了: " + element.id);

}

</script>

</head>

<body>

<button id="button" onclick=manualClick(event) style="width: 80px; height: 20px;color: red;">点击一下</button>code>

</body>

</html>

当按钮被点击时,会触发handleClick函数,并且通过event.target获取到是哪个元素触发了事件

event.currentTarget返回绑定事件的元素

<code><!DOCTYPE html>

<html lang="en">code>

<head>

<meta charset="UTF-8">code>

<meta name="viewport" content="width=device-width, initial-scale=1.0">code>

<title>Document</title>

<script>

function manualClick(event){

var element =event.target;

console.log("element",element);

alert("你点击了: " + element.id);

console.log(event.target);

console.log(event.target.nodeName ); //获取事件触发元素标签name

console.log(event.target.className); //获取事件触发元素classname

console.log(event.target.innerHTML); //获取事件触发元素的内容

console.log(event.target.id);//获取事件触发元素id

console.log(event.currentTarget.nodeName); //获取事件绑定元素标签name

console.log(event.currentTarget.className); //获取事件绑定元素classname

console.log(event.currentTarget.innerHTML); //获取事件绑定元素的内容

console.log(event.currentTarget.id);//获取事件绑定元素id

}

</script>

</head>

<body>

<button id="button" onclick=manualClick(event) style="width: 80px; height: 20px;color: red;">点击一下</button>code>

</body>

</html>



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。