我有JSP
,其中包含下表。
<table id="grid">
<tr class="row">
<td class="cell"><input type="number" maxlength="1" id="00" value="${array[0][0]}"></td>
<td class="cell"><input type="number" maxlength="1" id="01" value="${array[0][1]}"></td>
<td class="cell"><input type="number" maxlength="1" id="02" value="${array[0][2]}"></td>
<td class="cell"><input type="number" maxlength="1" id="03" value="${array[0][3]}"></td>
<td class="cell"><input type="number" maxlength="1" id="04" value="${array[0][4]}"></td>
<td class="cell"><input type="number" maxlength="1" id="05" value="${array[0][5]}"></td>
<td class="cell"><input type="number" maxlength="1" id="06" value="${array[0][6]}"></td>
<td class="cell"><input type="number" maxlength="1" id="07" value="${array[0][7]}"></td>
<td class="cell"><input type="number" maxlength="1" id="08" value="${array[0][8]}"></td>
</tr>
........................9 rows like the above.................
</table>
我已尝试使用以下jQuery
代码清除表格单元格输入值的内容(如果为零)。但它没有用。任何人都可以指导吗?
$("#grid td input").each(function(){
$(this).each(function () {
var value = $(this).val();
if (value == 0) {
$(this).empty();
}
})
});
答案 0 :(得分:1)
不要在每个内部使用,每个都已经引用了你的输入,所以只需使用:
$("#grid td input").each(function(){
if ($(this).val() == 0) {
$(this).val("")
}
});
答案 1 :(得分:1)
如果要删除值,必须使用$(this).val('');
$("#grid td input").each(function(){
var value = $(this).val();
if (value == 0) {
$(this).val('');
}
});
empty
删除元素集的所有子节点,但不清除输入。 jQuery.empty docs:http://api.jquery.com/empty/
答案 2 :(得分:1)
你使用$(“#grid td input”)。每个,所以你不需要使用$(this).each,只需使用$(this).val(“”)
$("#grid td input").each(function(){
var value = $(this).val();
if (value == 0) {
$(this).val("");
}
});
答案 3 :(得分:1)
例如:
$("#grid td input").val(function() {
return this.value == 0 ? '' : this.value;
});
$.fn.empty用于清除HTML节点。要设置输入元素值,请使用val方法。您只需使用本机HTMLInputElement值属性。
你也可以在没有each
的情况下直接使用val,jQuery会在内部迭代你。
答案 4 :(得分:1)
在this
中使用each
时,它指的是输入元素,而不是td
元素。由于输入元素没有任何子节点,并且$().empty()
用于从元素中删除子节点,因此不会发生任何事情。
如果要完全删除输入,则应使用$(this).parent().empty()
,这将清空输入的父级,即td
元素。我假设您想要将输入元素保留在那里,但只是删除它的值,在这种情况下,您应该只执行$(this).val("")
,这会将输入的值设置为空字符串。 / p>
答案 5 :(得分:1)
<强> Working demo : 强>
$("#grid td input").each(function(){
if ($(this).val()== 0) {
$(this).val("");
}
});
答案 6 :(得分:0)
代码无法正常工作,因为 输入类型是数字(类型=“数字”),因此它不会给出正确的值,并且您已将非数字值赋予输入框
in short value =“$ {array [0] [0]}”是输入框的类型=“数字” 并使用$(this).val('');清除inputbox中的值
答案 7 :(得分:0)
请在以下plunkr中找到解决方案