循环通过多个TD,抓取多个值,填充数组

时间:2014-09-11 19:28:10

标签: javascript jquery html

页面上有两个表格。 在我的第二个表中,我正在从JS动态添加html。 我正在检查<tr>内的tbody是否为空,使用:

var rowCount = $('#dynatable >tbody >tr').length;

如果行数为0,我继续使用我的javascript,如果存在1个或多个<tr>,我需要遍历每个<tr>并获取<td>中的两个输入值;每个<tr>可用。然后需要将数据收集到一个数组中以进行服务器端处理。

<table id="dynatable">
<thead>
    <tr>
        <th>Time</th>
        <th>Description</th>
    </tr>
</thead>
<tbody id="p_scents">
    <tr><td class="ts_td"><input type="text" name="ts_value[]" class="timestamp_input"/></td><td><TEXTAREA NAME="ts_description[]" class="ts_desc" rows="3" cols="30"  style="resize:none;" ></TEXTAREA></td></tr>
    <tr><td class="ts_td"><input type="text" name="ts_value[]" class="timestamp_input"/></td><td><TEXTAREA NAME="ts_description[]" class="ts_desc" rows="3" cols="30"  style="resize:none;" ></TEXTAREA></td></tr>
</tbody>

我浏览了类似的问题,但我无法找到适合我情况的解决方案。我之前的解决方案使用的是simpleHTMLDOM + PHP,但它的性能太慢了。

我被告知使用JS或jquery,我对这两者都很不熟悉,非常感谢任何帮助。 如何从特定表中的多个<tr>中获取多个输入的值并将值存储在数组中?

1 个答案:

答案 0 :(得分:1)

如果你的类是相同的,你可以用jQuery做这样的事情。

它将值放入数组中。

var values = $("input[class='timestamp_input']").map(function(){return $(this).val();}).get();

var textAreaValues = $("textarea[class='ts_desc']").map(function(){return $(this).val();}).get();

console.log(values);

console.log(textAreaValues);

JSFiddle demo here