Javascript 将我正在单击的按钮的引用传递到它触发的函数中。JS
如何将我正在单击的按钮的引用传递到它触发的函数中Javascript 将我正在单击的按钮的引用传递到它触发的函数中。JS,javascript,jquery,Javascript,Jquery,如何将我正在单击的按钮的引用传递到它触发的函数中 jQuery('<button class="btn"/>') .click(function() { myFunc(this??); return false; }) var myFunc = function (this??) { //I WANT TO CHECK IF THE BUTTONS PARENT HAS A SPECIFIC CLASS HERE
jQuery('<button class="btn"/>')
.click(function() {
myFunc(this??);
return false;
})
var myFunc = function (this??) {
//I WANT TO CHECK IF THE BUTTONS PARENT HAS A SPECIFIC CLASS HERE
if(jQuery(this??).parent().hasClass('myClass')){
//DO STUFF HERE
}
}
我不能使用类名,因为我的页面上有几个这样的按钮
使用myfuncis。它是将元素传递给函数的正确方法
对函数参数使用除此之外的任何其他名称
jQuery('<button class="btn"/>')
.click(function () {
myFunc(this);
return false;
});
var myFunc = function (elem) {
//I WANT TO CHECK IF THE BUTTONS PARENT HAS A SPECIFIC CLASS HERE
if (jQuery(elem).parent().hasClass('myClass')) {
//DO STUFF HERE
}
}
不需要在单独的函数中传递它
jQuery('<button class="btn"/>')
.click(function() {
if(jQuery(this).parent().hasClass('myClass')){
//DO STUFF HERE
}
return false;
})
移除
这是一个变量,不能用作myFunc函数中的变量。更改myFunc声明中变量的名称:
var myFunc = function (myElement) { ... }
然后更改if语句以反映该更改:
jQuery(myElement).parent().hasClass('myClass')
我对jquery了解不多,但使用Js的一个可能解决方案是
<script>
function onClick1(b)
{
alert(b.parentNode.className);
}
</script>
<div class="divClass">
<button onclick="onClick1(this)">
hello
</button>
</div>
我们可以在onclick事件属性中传递它,该属性在本例中传递生成事件的元素的引用对象。然后,我们可以引用button的parentNode及其具有className属性的类 HTML
也许有一个原因,他想通过它作为一个论点。这不一定能正确回答问题。它是同一个对象,不管他是作为参数传入还是使用This关键字,对吗?@Grüse jQuery在不同的函数调用中不提供作用域,据我所知。myFunc是一个独立函数,与button元素无关。据我所知,它会立即尝试:啊,好的,我错过了click调用中的附加匿名函数。我指的是这个案例:你当然也可以这么做。。。
<script>
function onClick1(b)
{
alert(b.parentNode.className);
}
</script>
<div class="divClass">
<button onclick="onClick1(this)">
hello
</button>
</div>
<div class="myClass">
<button id="btn" class="btnClass">Hi</button>
</div>
$('.btnClass').click(function() {
myFunc(this);
});
var myFunc = function (a) {
//I WANT TO CHECK IF THE BUTTONS PARENT HAS A SPECIFIC CLASS HERE
if(jQuery(a).parent().hasClass('myClass')){
alert();
//DO STUFF HERE
}
}