2016-02-25 41 views
0

我有如下表加載在一個div一個按鈕:JQuery的找到ID或其他加載元素

<table id="id_table"> 
 
\t <thead> 
 
\t \t <tr> 
 
\t \t \t <th>Code</th> 
 
\t \t \t <th>Description</th> 
 
\t \t \t <th>Group</th> 
 
\t \t </tr> 
 
\t \t <tr> 
 
\t \t \t <th><input type="text" id="txtcolumn1"/></th> 
 
\t \t \t <th><input type="text" id="txtcolumn2"/></th> 
 
\t \t \t <th><input type="text" id="txtcolumn3"/></th> 
 
\t \t </tr>    
 
\t </thead> 
 
\t <tbody> 
 
\t \t <tr data="line1"> 
 
\t \t \t <td data="column1">001.01-A</td> 
 
\t \t \t <td data="column2">Black bean</td> 
 
\t \t \t <td data="column3">Cereal</td> 
 
\t \t </tr> 
 
\t \t <tr data="line2"> 
 
\t \t \t <td data="column1">001.02-B</td> 
 
\t \t \t <td data="column2">White bean</td> 
 
\t \t \t <td data="column3">Cereal</td> 
 
\t \t </tr>    
 
\t \t <tr data="line3"> 
 
\t \t \t <td data="column1">002.10-C</td> 
 
\t \t \t <td data="column2">Rice</td> 
 
\t \t \t <td data="column3">Cereal</td> 
 
\t \t </tr> 
 
\t \t <tr data="line4"> 
 
\t \t \t <td data="column1">047.27-D</td> 
 
\t \t \t <td data="column2">Soap</td> 
 
\t \t \t <td data="column3">Cleaning</td> 
 
\t \t </tr>    
 
\t </tbody> 
 
</table>

我會用的輸入表中的內容進行過濾,只顯示加載表後,每個輸入上鍵入的值匹配的colmuns。要篩選我使用事件「KEYUP」如下表:

$("#id_div_Content").on('keyup','#id_table input',function(){ 
 
\t var indice = $(this).parent().index()+1; 
 
\t var valor = $(this).val().toUpperCase(); 
 
\t $(this).parent().parent().parent().parent().find('tr').show(); 
 
\t 
 
\t $(this).parent().parent().parent().parent().find('td').each(function(){ 
 
\t \t var coluna = $(this).attr('data'); 
 
\t \t if (coluna == "coluna" + indice.toString()) { 
 
\t \t  if($(this).text().toUpperCase().indexOf(valor) < 0){ 
 
\t \t \t  $(this).parent().hide(); 
 
\t \t  } 
 
\t  } 
 
\t }); 
 
});

我的疑問是:這個「KEYUP」事件中,我怎麼能找到表由元素數據,身份證還是其他? JQuery無法直接使用直接選擇器來查找這些元素,因爲它是點擊按鈕後在div中加載的html。 ()。parent()。parent()從輸入到達表id(例如),但這只是一個小測試,並且在頁面事物的最終版本將會複雜得多。我會有更多的表格和字段,這樣我可能需要一英里的.parent()才能到達元素。

從此開始感謝。

回答

0

您可以在該鍵入處理程序中使用普通的選擇器。由於你在做一個委託綁定,所以當處理這個元素時就會在這個點上存在。所以你可以正常查看它們。

我可能會建議製作「column1」,「column2」和「column3」類,而不是數據元素,儘管如果您希望通過它們進行選擇。

編輯: 除此之外,data="value"通常不是您使用數據元素的方式。通常,他們遵循data-key="value"的模式,然後稍後用data('key')data('key', newValue)

+0

引用它們,我不知道哪個是我的錯誤,但我以前曾以多種方式嘗試過,並且從未工作過。現在我嘗試了,它正在工作。不管怎樣,謝謝! –

相關問題