嘿伙计们,我有一张看起来像这样的桌子:
<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
答案 0 :(得分:0)
你可以循环抛出每个td。 这是一个例子
$('table').find('tr').each(funtion(){
var trResult= '';
$(this).find('td').each(function()
{
IF(trResult.indexOf($(this).val()) ===-1)
trResult += $(this).val() +';';
});
});
这是在我的手机上写的,很遗憾造成糟糕的格式化