我在页面上有多个表(将有超过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');
});
通过查看它可以更好地解释
答案 0 :(得分:1)
this
是事件处理程序中的目标元素:
$('#srds_mapping').bind('change', function (e) {
if( $(this).val() == 'Custom') { // traverse to find the target input element
请注意,您不应在页面上使用多个ID。使用类或其他选择器来代替of.ex:
$('select').bind('change', function (e) {
if( $(this).val() == 'Custom') {
答案 1 :(得分:0)
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');
});
此外,this thread可能值得一读,或者值得思考。