2015-09-30 41 views
0

首先感謝閱讀。jQuery查找輸入文本元素幾個級別

我寫了一個代碼,假設搜索任何輸入類型的文本里面很多想法是搜索如果每個元素內部包含一個文本,如果它的話tr將是.show()如果任何內部的元素tr包含tr將是.hide()的文本。 但我不能得到輸入的價值,也許是一些愚蠢的錯誤。 所以結構可以是:

<tr> 
    <td><div><div><input type="text" value="hello world" /></div></div><td> 
    <td><div><input type="text" value="hello world" /></div><td> 
    </tr> 
    <tr> 
    <td><input type="text" value="tutu" /><td> 
    <td><span><input type="text" value="orl" /></span><td> 
    </tr> 

/* renglones is every <tr> */ 
$.each(renglones, function() { 
     var inputs = $(this).find('input [type=text]').find('input'); 
     console.info(inputs); 
     $(inputs).each(function() { 
      console.info($(this).val()); 
     }); 
    }); 
+0

你正在尋找一個輸入是輸入的孩子的輸入的子元素。應該只是'var inputs = $(this).find('input [type = text]');' – epascarello

回答

2

您可以只使用:text selector

renglones.each(function() {//assuming renglones is a jQuery object 
    var $inputs = $(this).find('input:text'); 
    $inputs.each(function() { 
     console.info($(this).val()); 
    }); 
}); 
0

感謝阿倫P約翰尼拉

最終代碼:

$.each(renglones, function() { 
     var $inputs = $(this).find('input:text'); 
     var encontrado = false; 
     $inputs.each(function() { 
      if($(this).val().indexOf(texto.toLowerCase()) != -1 || $(this).val().indexOf(texto.toUpperCase()) != -1){ 
       encontrado = true; 
      } 
     }); 
     if(encontrado){ 
      $(this).show('200'); 
     } 
     else{ 
      $(this).hide('200'); 
     } 
    });