在jquery中获取父类和触发器
Get parent class and trigger in jquery
我想通过单击按钮或图像来触发父类的事件。
<li class="addImage">
<input class="PhotoPicker" type="file" accept="image/*" capture="camera" onchange="angular.element(this).scope().file_changed(this)" />
<a class='imageclick' onclick=" $(this).closest('.PhotoPicker').trigger('click');">
<img ng-src="images/add-photo.png">
</a>
在这里重复addImage
类,当我单击imageclick
类时,我想触发相应列表photopicker
。当我使用时它工作得很好,
('.PhotoPicker').trigger('click');
请帮帮我!
他们不是彼此的祖先/后代。
您需要使用closest
上升到LI(最近的共同祖先),然后向下搜索find
:
$(this).closest('li').find('.PhotoPicker').trigger('click');
您还可以trigger('click')
缩短为仅.click()
因为它在幕后执行完全相同的操作:
$(this).closest('li').find('.PhotoPicker').click();
您可以使用同级选择器,但这对 DOM 中所做的更改并不那么可靠。 使用共同祖先并找到更安全。例如,如果出于样式目的更改了布局,并在元素周围添加了额外的 DIV,则同级搜索将失败。
最接近的向上看祖先。你想侧身去兄弟姐妹。
可以使用prev()
或siblings()
$(this).prev().trigger('click');
或
$(this).siblings('.PhotoPicker').trigger('click');
$(".imageclick").prev().trigger("click");
您可以在此处简单地使用prev
选择器。https://api.jquery.com/prev/
您可以向上移动DOM
以查找其父项,然后搜索所需的子项
<li class="addImage">
<input class="PhotoPicker" type="file" accept="image/*" capture="camera" onchange="angular.element(this).scope().file_changed(this)" />
<a class='imageclick' onclick="someFunction()">
<img ng-src="images/add-photo.png">
</a>
.JS
function(){
$(this).parent().find('.PhotoPicker').trigger('click');
}
斯菲德尔
你应该
了解closest
的用法,它的工作是向上浏览它的父元素,而不是兄弟姐妹,在你的标记中,类PhotoPicker
是一个同级元素,而不是父/祖先元素。
但addImage
是imageclick
的父/祖先元素。因此,您可以使用这样的closest
访问它;
$(this).closest('.addImage')
然后您可以使用 find
函数在其中获取 PhotoPicker
元素,如下所示:
$(this).closest('.addImage').find('.PhotoPicker').first().trigger('click')
相关文章:
- 是否可以从父类访问子类的属性
- 使用此选项选择父类内部的类
- 子类访问父类's闭包变量
- 如何通过Prototype或jquery移除子类的父类基类
- JavaScript—父类和子类/对象的此问题
- 通过使用此组件,检索父类数据
- jQuery .not() 排除特定类的父类
- 如何在 jQuery 中获取具有特定父类的所有元素的内容,并将它们传递给 GET 变量
- 如何在单击父类的另一个子类时获取子类的值
- 初始化父类中的变量(JavaScript/CoffeeScript 习语)
- hover添加类-或子类:悬停以影响父类
- 唯一标识父类的元素
- 无法将值从实例对象传输到父类的实例数组中
- jQuery父类更改的子级
- 在父类更改时停止HTML5音频/视频
- 如何从父类中记录成员函数
- 如果类中没有子元素,则赋予父类
- 使用继承配置netzkejavascript代码(在带有参数的父类中定义js代码)
- 单击父类中的任何内容时,从父类中删除该类
- 在jquery中获取父类和触发器