类似于类选择器的jQuery,并在纯js中使用$(this)

时间:2019-03-07 16:16:43

标签: javascript jquery jquery-selectors

我想像jquery中那样创建一个js类选择器。

$('.someClass').click(function(){
    alert($(this).value());
});

我已经尝试过使用javascript。

function myFunction(this){
    alert(this).value;
}
document.getElementsByClassName('someClass').onclick = "myFunction";

这对我不起作用,我在堆栈溢出中也引用了许多其他论坛。

这不是重复的...如果您发现它,请通过链接帮助我

1 个答案:

答案 0 :(得分:1)

使用querySelectorAll获取该类的所有元素,然后使用forEach遍历它们并为每个元素添加一个事件侦听器:

使用jQuery编码:

$('.someClass').click(function(){
    console.log($(this).text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<span class="someClass">Hello, World!</span>
<span class="someClass">1, 2!</span>
<span class="someClass">3, 4!</span>

使用纯JS编码:

var all = document.querySelectorAll('.someClass');

all.forEach((e) => {
  e.addEventListener('click', () => {
    console.log(e.innerText);
  })
});
<span class="someClass">Hello, World!</span>
<span class="someClass">1, 2!</span>
<span class="someClass">3, 4!</span>