将绑定函数包装到THIS元素
Jquery - wrapping a bind function to THIS elements
我在一个页面上有多个表(将有超过100个),我想为所有这些使用一个函数。当用户在下拉菜单中选择"Custom"时,附加问题将适用于所有这些选项。我如何在THIS语句中包装我的函数,以使其仅添加到单个表中。我为我对这个问题的描述提前道歉。
$(document).ready(function(){
$('td.additional_content').css('visibility', 'hidden');
$('#srds_mapping').bind('change', function (e) {
if( $('#srds_mapping').val() == 'Custom') {
$('td.additional_content').css('visibility', 'visible');
$('td.additional_content .custom').show();
} else {
$('td.additional_content').css('visibility', 'hidden');
$('td.additional_content .custom').hide();
}
}).trigger('change');
});
最好看一下
http://jsfiddle.net/2Q7J7/2/this
是事件处理程序中的目标元素:
$('#srds_mapping').bind('change', function (e) {
if( $(this).val() == 'Custom') { // traverse to find the target input element
注意,您不应该在页面上使用多个ID。使用类或其他选择器代替,f.ex:
$('select').bind('change', function (e) {
if( $(this).val() == 'Custom') {
jQuery .each()函数将是一个不错的选择:
假设$('#srds_mapping')
是您的表。首先,您可以向表中添加一个类,而不是id。例如<table id="srds_mapping" class="srds_mapping"></table>
。在此之后,您可以执行如下操作:
$('.srds_mapping').each(function(){
$(this).bind('change', function (e) {
// other function stuff
}).trigger('change');
});
还有,这个帖子可能值得一读,或者值得思考。
相关文章:
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- jQuery:具有class但不具有$(this)的元素
- this.defaultValue 返回 select 元素的未定义
- jQuery(this) 目標不是找到元素
- 如何通过 id 获取“this”元素并查看是否选中
- 同一元素的 this.id 值在浏览器之间是不同的
- 将jQuery$(this)转换为原始元素
- 如何在jQuery中隐藏没有$this的父元素
- jQuery不使用“$(this)”返回必需的元素
- 如何选择 $(this) 之后的下一个元素
- Jquery从“this”内部的元素制作变量
- 在 JavaScript / jQuery 回调中使用“this”更改单击元素的文本
- 从在javascript中共享类的THIS元素中获取值
- 将焦点放在由 ng-click 调用的函数中的“this”元素上
- 我如何定位“这个”?this' "元素的孩子
- 验证的重点是错误,AND引用THIS元素
- 在jQuery中,“this”和“this”的区别是什么?元素'和' this.元素[/*某数*/]'
- 将绑定函数包装到THIS元素
- 通过“this"元素到JS函数中使用"javascript:"URL
- 这是访问javascript对象的this元素的正确方法