我已经创建了一个表,在该表中,我希望名称列中的所有值(它是隐藏的)。我使用了下面的jquery代码,它使用nth-child(4)来获取所有的值,但问题是这个表来自另一个应用程序,所以如果表在之间插入另一列,那么下面的代码就无法工作。我有一个作为name的列标题的id
有人能告诉我基于类或id获取列值的解决方案吗?
如何检查id是否存在或丢失,如果id丢失,则应用以下逻辑
$('#content table tbody tr td:nth-child(4)').each(function() {
console.log('seee:', $(this).text());
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div id="content">
<table border="1">
<thead>
<tr>
<th>Test1</th>
<th>Test2</th>
<th>Test3</th>
<th id="name" style="display:none">Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>23</td>
<td>54</td>
<td>76</td>
<td style="display:none">jacob</td>
</tr>
<tr>
<td>34</td>
<td>54</td>
<td>32</td>
<td style="display:none">jacob</td>
</tr>
<tr>
<td>65</td>
<td>78</td>
<td>56</td>
<td style="display:none">lessi</td>
</tr>
<tr>
<td>34</td>
<td>65</td>
<td>34</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>32</td>
<td>65</td>
<td>76</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>54</td>
<td>65</td>
<td>34</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>56</td>
<td>76</td>
<td>87</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>65</td>
<td>67</td>
<td>65</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>76</td>
<td>67</td>
<td>56</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>76</td>
<td>65</td>
<td>54</td>
<td style="display:none">messi</td>
</tr>
</tbody>
</table>
</div>
发布于 2015-05-09 10:32:46
您可以获取#name元素的索引,然后在nth-child选择器中使用它。
var ids = $('#name').index();
$('#content table tbody tr td:nth-child(' + (ids + 1) + ')').each(function() {
console.log('seee:', $(this).text());
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="content">
<table border="1">
<thead>
<tr>
<th>Test1</th>
<th>Test2</th>
<th>Test3</th>
<th id="name" style="display:none">Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>23</td>
<td>54</td>
<td>76</td>
<td style="display:none">jacob</td>
</tr>
<tr>
<td>34</td>
<td>54</td>
<td>32</td>
<td style="display:none">jacob</td>
</tr>
<tr>
<td>65</td>
<td>78</td>
<td>56</td>
<td style="display:none">lessi</td>
</tr>
<tr>
<td>34</td>
<td>65</td>
<td>34</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>32</td>
<td>65</td>
<td>76</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>54</td>
<td>65</td>
<td>34</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>56</td>
<td>76</td>
<td>87</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>65</td>
<td>67</td>
<td>65</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>76</td>
<td>67</td>
<td>56</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>76</td>
<td>65</td>
<td>54</td>
<td style="display:none">messi</td>
</tr>
</tbody>
</table>
</div>
发布于 2015-05-09 10:34:10
假设在:last-child字段之间添加了新的td,则可以使用testX。
或者,您可以找到name头,获取它的index(),然后从那里找到td值:
var nameTdIndex = $('#name').index() + 1;
$('#content td:nth-child(' + nameTdIndex + ')').each(function() {
console.log('seee:', $(this).text());
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div id="content">
<table border="1">
<thead>
<tr>
<th>Test1</th>
<th>Test2</th>
<th>Test3</th>
<th id="name" style="display:none">Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>23</td>
<td>54</td>
<td>76</td>
<td style="display:none">jacob</td>
</tr>
<tr>
<td>34</td>
<td>54</td>
<td>32</td>
<td style="display:none">jacob</td>
</tr>
<tr>
<td>65</td>
<td>78</td>
<td>56</td>
<td style="display:none">lessi</td>
</tr>
<tr>
<td>34</td>
<td>65</td>
<td>34</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>32</td>
<td>65</td>
<td>76</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>54</td>
<td>65</td>
<td>34</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>56</td>
<td>76</td>
<td>87</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>65</td>
<td>67</td>
<td>65</td>
<td style="display:none">firoz</td>
</tr>
<tr>
<td>76</td>
<td>67</td>
<td>56</td>
<td style="display:none">messi</td>
</tr>
<tr>
<td>76</td>
<td>65</td>
<td>54</td>
<td style="display:none">messi</td>
</tr>
</tbody>
</table>
</div>
https://stackoverflow.com/questions/30138837
复制相似问题