Javascript jQuery获取已单击元素的父jQuery对象
My HTML包含许多类似以下内容的对象:Javascript jQuery获取已单击元素的父jQuery对象,javascript,jquery,Javascript,Jquery,My HTML包含许多类似以下内容的对象: <div class="class"> <div class="disconnect_btn">Click here</div> <input type="hidden" name="ID" value="12"/> </div> 我想做的是首先获取按钮所在的Div,我尝试使用e.parents('.class')方法,但这总是返回错误,就像对象没有方法一样。。。 我的第二个目标是从
<div class="class">
<div class="disconnect_btn">Click here</div>
<input type="hidden" name="ID" value="12"/>
</div>
我想做的是首先获取按钮所在的Div,我尝试使用e.parents('.class')
方法,但这总是返回错误,就像对象没有方法一样。。。
我的第二个目标是从parents Div中的隐藏输入字段中提取value属性
function disconnectFunction(e){
var parent = e.parents('.class')); //returns error
var ID = parent.find('input:hidden[name=ID]').attr('value');
console.log( ID );
}
我也尝试了这个和$(这个)选择器,但不知怎么的,我现在被卡住了,也许有一个简单的解决方案我找不到。你需要传递当前对象而不是事件对象。请使用on('events')方法将事件附加到dom元素 可能性
$('.disconnect_btn').on('click',function(e){
disconnectFunction(this);
});
function disconnectFunction(currObj){
var parent = $(currObj).parents('.class'));
var ID = parent.find('input:hidden[name=ID]').attr('value');
console.log( ID );
}
function disconnectFunction(e){
var parent = $(this).parents('.class')); //here this refer to clicked object
var parent = $(e.Target).parents('.class')); //Using event.Target Property
var ID = parent.find('input:hidden[name=ID]').attr('value');
console.log( ID );
}
您需要传递当前对象而不是事件对象。请使用on('events')方法将事件附加到dom元素 可能性
$('.disconnect_btn').on('click',function(e){
disconnectFunction(this);
});
function disconnectFunction(currObj){
var parent = $(currObj).parents('.class'));
var ID = parent.find('input:hidden[name=ID]').attr('value');
console.log( ID );
}
function disconnectFunction(e){
var parent = $(this).parents('.class')); //here this refer to clicked object
var parent = $(e.Target).parents('.class')); //Using event.Target Property
var ID = parent.find('input:hidden[name=ID]').attr('value');
console.log( ID );
}
您的问题是您试图使用
事件
对象,而不是HTML对象
$('.disconnect_btn').bind('click',function(e){
// `e` refers to event object received by the callback function
// `this` refers to the HTMLElement that was clicked
// $(this) turns `this` (which is HTMLElement object) to `jQuery` object
disconnectFunction($(this)); // this will do the trick
// now, you can use `e` parameter inside disconnectFunction
// as a `jQuery` object which has `parents` method defined
});
您的问题是您试图使用
事件
对象,而不是HTML对象
$('.disconnect_btn').bind('click',function(e){
// `e` refers to event object received by the callback function
// `this` refers to the HTMLElement that was clicked
// $(this) turns `this` (which is HTMLElement object) to `jQuery` object
disconnectFunction($(this)); // this will do the trick
// now, you can use `e` parameter inside disconnectFunction
// as a `jQuery` object which has `parents` method defined
});
你这样使用:
var parent = e.parents('.class')); //returns error
var parent = $(e).parents('.class');
这样使用:
var parent = e.parents('.class')); //returns error
var parent = $(e).parents('.class');
你这样使用:
var parent = e.parents('.class')); //returns error
var parent = $(e).parents('.class');
这样使用:
var parent = e.parents('.class')); //returns error
var parent = $(e).parents('.class');
使用
e.target
获取单击的元素,e
是事件对象。您还可以使用.closest()
获取classclass
的第一个父级
另一个注意事项:用于获取输入字段的值,而不是使用
另一种解决方案是将单击的元素传递给disconnectFunction
function disconnectFunction(el){
var parent = $(el).closest('.class')); //returns error
var ID = parent.find('input:hidden[name=ID]').val();
console.log( ID );
}
然后
使用
e.target
获取单击的元素,e
是事件对象。您还可以使用.closest()
获取classclass
的第一个父级
另一个注意事项:用于获取输入字段的值,而不是使用
另一种解决方案是将单击的元素传递给disconnectFunction
function disconnectFunction(el){
var parent = $(el).closest('.class')); //returns error
var ID = parent.find('input:hidden[name=ID]').val();
console.log( ID );
}
然后
您可以将事件作为参数传递,而不是传递DOM 您可以通过如下操作从事件传递它
$('.disconnect_btn').on('click',function(e){
disconnectFunction(e.target);
});
在disconnectFunction中,您可以按如下方式使用它
function disconnectFunction(e){
var parent = $(e).parents('.class')); //returns error
---^^^^^-----
var ID = parent.find('input:hidden[name=ID]').attr('value');
console.log( ID );
}
您可以将事件作为参数传递,而不是传递DOM 您可以通过如下操作从事件传递它
$('.disconnect_btn').on('click',function(e){
disconnectFunction(e.target);
});
在disconnectFunction中,您可以按如下方式使用它
function disconnectFunction(e){
var parent = $(e).parents('.class')); //returns error
---^^^^^-----
var ID = parent.find('input:hidden[name=ID]').attr('value');
console.log( ID );
}
试试这个
$('.disconnect_btn').bind('click',function(e){
disconnectFunction($(this));
});
及
试试这个
$('.disconnect_btn').bind('click',function(e){
disconnectFunction($(this));
});
及
您只需执行以下操作:
$('.disconnect_btn').on('click',function(e){
disconnectFunction($(e.target)); // <== Pass $(e.target) or $(this), in place of e
});
$('.disconnect_btn')。打开('click',函数(e){
disconnectFunction($(e.target));//您只需执行以下操作:
$('.disconnect_btn').on('click',function(e){
disconnectFunction($(e.target)); // <== Pass $(e.target) or $(this), in place of e
});
$('.disconnect_btn')。打开('click',函数(e){
disconnectFunction($(e.target));//使用$(e.target)。最近('.class')使用$(e.target)。最近('.class'))