如果表单元格值为零,如何清除它?

时间:2014-05-10 15:17:00

标签: javascript jquery

我有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();
        }
     })
});

8 个答案:

答案 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中找到解决方案

http://plnkr.co/edit/lmuHfLWMYvgv2rjM1oGc?p=info