2014-06-13 38 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可能值得一讀,或者想一想。