要获取行的所有输入,可以将单击事件添加到行本身。
$("tr").click...
然后使用
$(this).find(".myFieldA")
$("table tr").click(function() {
console.log($(this).find(".myFieldA").val(), $(this).find(".myFieldB").val());
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="text" class="myFieldA" value="11"></td>
<td><input type="text" class="myFieldB" value="22"></td>
</tr>
<tr>
<td><input type="text" class="myFieldA" value="33"></td>
<td><input type="text" class="myFieldB" value="44"></td>
</tr>
<tr>
<td><input type="text" class="myFieldA" value="55"></td>
<td><input type="text" class="myFieldB" value="66"></td>
</tr>
</table>
在某些情况下,可能会出现
td
您不希望打开单击事件,因此更容易将单击事件添加到您想要的单元格或不想要的单元格之外的所有单元格:
$("td.click").click...
$("td:not(.noclick)").click...
随着事件的进展
(或在
input
如果愿意,您可以访问
tr
var tr = $(this).closest("tr");
$("table tr td:not(.noclick)").click(function() {
var row = $(this).closest("tr");
console.log(row.find(".myFieldA").val(), row.find(".myFieldB").val());
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="text" class="myFieldA" value="11"></td>
<td><input type="text" class="myFieldB" value="22"></td>
<td class="noclick">click here doesn't give values</td>
</tr>
<tr>
<td><input type="text" class="myFieldA" value="33"></td>
<td><input type="text" class="myFieldB" value="44"></td>
<td class="noclick">click here doesn't give values</td>
</tr>
<tr>
<td><input type="text" class="myFieldA" value="55"></td>
<td><input type="text" class="myFieldB" value="66"></td>
<td class="noclick">click here doesn't give values</td>
</tr>
</table>
如果您不知道有多少个输入,只需要一个值数组,那么可以使用
.map
var values = row.find(":input").map((i,e)=> $(e).val()).toArray();
哪里
row
是
tr
从以前和
.toArray()
console.log
)
$("table tr td:not(.noclick)").click(function() {
var row = $(this).closest("tr");
var values = row.find(":input").map((i,e)=> $(e).val()).toArray();
console.log(values)
})
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js“></脚本>
<tr>
<td>&书信电报;输入type=“text”class=“myFieldA”value=“11”></td>
<td class=“noclick”>单击此处不提供值</td>
<tr>
<td>&书信电报;输入type=“text”class=“myFieldB”value=“44”></td>
<td class=“noclick”>单击此处不提供值</td>
<tr>
<td>&书信电报;输入type=“text”class=“myFieldB”value=“66”></td>
</表>
然后可以对其进行扩展,为您提供一个具有键/值的对象数组
var values = row.find(":input").map((i,e)=> {
return {
key : e.className,
value : $(e).val()
}
}).toArray();
$("table tr td:not(.noclick)").click(function() {
var row = $(this).closest("tr");
var values = row.find(":input").map((i,e)=> {
return {
key : e.className,
value : $(e).val()
}
}).toArray();
console.log(values)
})
<<表>
<td>&书信电报;输入type=“text”class=“myFieldB”value=“22”></td>
<td class=“noclick”>单击此处不提供值</td>
</tr>
<td>&书信电报;输入type=“text”class=“myFieldB”value=“44”></td>
<td class=“noclick”>单击此处不提供值</td>
<tr>
<td>&书信电报;输入type=“text”class=“myFieldA”value=“55”></td>
<td class=“noclick”>单击此处不提供值</td>
</tr>
var values = {};
row.find(":input").each((i,e) =>
values[e.className] = $(e).val()
);
$("table tr td:not(.noclick)").click(function() {
var row = $(this).closest("tr");
var values = {};
row.find(":input").each((i,e) =>
values[e.className] = $(e).val()
);
console.log(values)
})
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js“></脚本>
<tr>
<td>&书信电报;输入type=“text”class=“myFieldB”value=“22”></td>
</tr>
<tr>
<td>&书信电报;输入type=“text”class=“myFieldB”value=“44”></td>
</tr>
<tr>
<td>&书信电报;输入type=“text”class=“myFieldA”value=“55”></td>
<td class=“noclick”>单击此处不提供值</td>
</tr>