微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调用函数 JS

如何解决调用函数 JS

有人能说一下如何选择和调用当前函数的元素吗?

function Myfunc() {
  element.style.padding = '16px';
}

//---

<button onclick="Myfunc()">Click Me!</button>

我问如何在不给元素提供 id 或 class 的情况下做到这一点,并且没有:

function Myfunc(this) { }

解决方法

你可以显式地将元素作为函数的参数传递,你可以引用 event 对象,或者你可以内联代码(最后一个不是一个好的选择,但它仍然有效):

function clickFunc1(element) {
  element.style.padding = '16px'
}

function clickFunc2() {
  event.target.style.padding = '16px'
}
<button onclick="clickFunc1(this)">ClickMe 1</button>
<button onclick="clickFunc2()">ClickMe 2</button>
<button onclick="this.style.padding = '16px'">ClickMe 3</button>

,

使用this.style.padding

function Myfunc(element) {
  element.style.padding = '16px';
}
<button onclick="Myfunc(this)">Click Me!</button>
<button onclick="Myfunc(this)">Click Me 2!</button>
<button onclick="this.style.padding = '16px'">Click Me Without function!</button>

,

你可以这样使用它:

function Myfunc(element) {
element.style.padding = '16px';
}
<button onclick="Myfunc(this)">Click Me!</button>

,

方法一

function foo(target){
  target.style.padding = '16px';
}
<button onclick="foo(this)">Click me!</button>

方法 2(更好)

document.querySelector("button").addEventListener("click",function(event){
  const element = event.target;
  element.style.padding  = '16px';
});
<button>Click me!</button>

,

您可以选择event

<button onclick="Myfunc(event)">Click Me!</button>

那么 e.target 是您点击的元素。

function Myfunc(e) {
  e.target.style.padding = '16px';
}

JSFiddle

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。