2015-10-12 15 views
0

如何获取表格行内的文本框的每个值timeinhh1获取表格行内的每个文本框的相同类的值

我使用这个代码:

function ValidateOnLoad() { 
    $('tr').each(function() { 
     var timeinhh1 = $(this).children('.timeinhh1').val(); 
     alert(timeinhh1); 
    }); 
} 
<table> 
    <tr> 
     // th here 
    </tr> 
    <tr> 
     <td><input type="text" class="timeinhh1" value="9"></td> 
     <td><input type="text" class="timeinhh2" value="12"></td> 
    </tr>   
    <tr> 
     <td><input type="text" class="timeinhh1" value="13"></td> 
     <td><input type="text" class="timeinhh2" value="14"></td> 
    </tr> 
</table> 

但它不工作,如何正确地做到这一点?提前致谢。

+1

的是,在类名不匹配? 'timeinhh1'或'tihhval1'? –

+0

我编辑了这个问题,先生谢谢。 –

+0

看到它在下面工作。这是你想要的吗? –

回答

1

的。儿童()方法从.find()在。儿童(不同)仅行驶的单层向下DOM树,而.find()可以向下遍历多个层来选择下降蚂蚁元素(孙辈等)。

您的结构tr>td>.timeinhh1所以this.children给你td.timeinhh1。而children()只给你特定元素的直接子女。 Docs

试试这个

$('tr').each(function() { 
 
    var timeinhh1 = $(this).children('td').children('.timeinhh1 ').val();// using children find td and then timeinhh1 
 
    var x = $(this).find('.timeinhh1 ').val();// you can do the same using find 
 
    console.log('using chidren - ' + timeinhh1); 
 
    console.log('using find - ' + x) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr>// th here</tr> 
 
    <tr> 
 
    <td> 
 
     <input type="text" class="timeinhh1" value="9" /> 
 
    </td> 
 
    <td> 
 
     <input type="text" class="timeinhh2" value="12" /> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <input type="text" class="timeinhh1" value="13" /> 
 
    </td> 
 
    <td> 
 
     <input type="text" class="timeinhh2" value="14" /> 
 
    </td> 
 
    </tr> 
 
</table>

1

$(document).ready(function() { 
 
    ValidateOnLoad(); 
 

 
    function ValidateOnLoad() { 
 
    $('tr').each(function() { 
 
     $(this).find('td').each(function() { 
 
     console.log("td"); 
 
     alert($(this).find(".timeinhh1").val()); 
 

 
     }); 
 

 
    }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 

 
    </tr> 
 

 
    <tr> 
 
    <td> 
 
     <input type="text" class="timeinhh1" value="9"> 
 
    </td> 
 
    <td> 
 
     <input type="text" class="timeinhh1" value="13"> 
 
    </td> 
 
    </tr> 
 

 
</table>

1

尝试

$(document).ready(function(){ 
     $('tr').each(function() { 
      var timeinhh1 = $(this).children('td').find('.timeinhh1').val(); 
      alert(timeinhh1); 
     }); 
    }); 

检查here

0

你的代码是工作的罚款很少的问题,它是没有找到在第一tr这就是.timeinhh1类为什么它返回undefined,而不是每个应用在所有tr上,应用你想要的类的过滤器,即timeinhh1

$(document).ready(function() { 
 
    $('tr').find('.timeinhh1').each(function() { 
 
      var timeinhh1 = $(this).val(); 
 
      alert(timeinhh1); 
 
    
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
     // th here 
 
    </tr> 
 

 
    <tr> 
 
     <td><input type="text" class="timeinhh1" value="9"></td> 
 
     <td><input type="text" class="timeinhh2" value="12"></td> 
 
    </tr> 
 

 
    <tr> 
 
     <td><input type="text" class="timeinhh1" value="13"></td> 
 
     <td><input type="text" class="timeinhh2" value="14"></td> 
 
    </tr> 
 

 
</table>

相关问题