在表

时间:2017-08-14 07:24:17

标签: javascript jquery html

嘿伙计们,我有一张看起来像这样的桌子:

<table>
  <tr>
    <td></td>
    <td></td>
    <td>
      <input type="text" name="test1" placeholder="Test1">
      <input type="text" name="test2" placeholder="Test2">
      <input type="text" name="test3" placeholder="Test3">
      <input type="text" name="test4" placeholder="Test4"></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>
      <input type="text" name="test1" placeholder="Test4">
      <input type="text" name="test2" placeholder="Test5">
      <input type="text" name="test3" placeholder="Test6">
    </td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>
      <input type="text" name="test1" placeholder="Test7">
      <input type="text" name="test2" placeholder="Test8">
    </td>
  </tr>

</table>

我想获取最后td内的输入的所有值以及每个表行的值。如果我可以将每个值存储在字符串中并用“。”分隔值,那么最好。然后将此字符串存储在数组中。因此,在这种特定情况下,将有3个带有值的字符串。我使用JavaScript和Jquery,非常感谢一些帮助。

所以是的,我已经尝试过为每个tr使用foreach条件但是没有成功。

我的JS代码看起来像这样:

$(document).ready(function() {
  var valueArray[];
  $("button").click(function(event) {
   $("tr").each(function(index) {
     var valueString;
   $("td input").each(function(){
     valueString += this.value;
    });
  valueArray.push(valueString);
  });
 });
});

最后编辑:

所以,我现在得到了一个解决方案,感谢Alen我只需做一些配置:

$(document).ready(function() {
  var ressultArray = [];
  $("button").click(function(event) {
    var trResult = '';
    $('table').find('tr').each(function() {
      $(this).find('td input').each(function() {
        if (trResult.indexOf($(this).val()) === -1)
          trResult += $(this).val() + ';';
      });
      var result = trResult.slice(0, -1);
      console.log(result);
      console.log(trResult);
      ressultArray.push(result);
      trResult = '';
    });
    console.log(ressultArray);
  });
});

在片刻我正在删除最后一个分号,因为我正在进一步使用这个数组来推测不同的值。 仍然有改进的余地,但我只想要有所作为。谢谢大家。

这里有一个测试的掠夺​​者: https://plnkr.co/edit/GMOgDA9dB0Y5Eosu0hVR?p=preview

1 个答案:

答案 0 :(得分:0)

你可以循环抛出每个td。 这是一个例子

$('table').find('tr').each(funtion(){
var trResult= '';
$(this).find('td').each(function()
{
IF(trResult.indexOf($(this).val()) ===-1)
trResult += $(this).val() +';';
});
});

这是在我的手机上写的,很遗憾造成糟糕的格式化