2014-06-13 41 views
0

我在一个页面上有多个表格(将会有超过100个),我想为它们使用一个函数。当用户在下拉菜单中选择“自定义”时,其他问题适用于所有人。如何将我的函数包装在THIS语句中,让它只添加到单个表中。我提前为我对这个问题的描述表示歉意。Jquery - 将绑定函数包装到这个元素

$(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/

+0

使用DOM遍历函数来查找相关内容 – TNK

+0

希望这有助于http://jsfiddle.net/JS2K8/使用类选择器和DOM遍历 – Satpal

回答

1

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') { 
+0

@TNK它已被回答。请坚持话题 – David

+0

@TNK它被接受了......无论如何,我不会回答你在这里问过的其他问题。如果您需要别的帮助,只需发布​​一个新话题。 – David

0

jQuery的。每()函数将是一个不错的选择:

假设$('#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可能值得一读,或者想一想。