我想遍历表并将输入值保存到数组,但出现js错误:

Object doesn't support property of method 'find'


这是我的代码:

function Elem(tex, check, r, c)
{
    this.text = tex;
    this.checkbox = check;
    this.row = r;
    this.column = c;
}

var Elems = [];

function fill()
{
    var table = document.getElementById("tab");
    for(var i=table.rows.length-1;  i>=2; --i)
    {
        for(var j=table.rows[i].cells.length-1; j>=1 ; j=j-2)
        {
            var check = $(table.rows[i].cells[j-1]).find('input');
            check = check.is(":checked");
            var ans = $(table.rows[i].cells[j]).find('input');
            ans = ans.val();
            var ans = new Elem(ans, check, i, j/2);
            Elems.push(ans);
        }
    }
}


这是我的桌子的样子:

...
<table id="tab">
<tr>
    <td rowspan="2">
        <strong>delete row</strong>
    </td>
    <td>
        <strong>checkbox info</strong>
    </td>
    <td>
        <strong>description</strong>
    </td>
</tr>
<tr>
    <td>
        <strong>delete column</strong>
    </td>
    <td>
         <input type='checkbox' name='delColumn_1'/>
    </td>
</tr>
<tr>
    <td>
        <input type='checkbox' name="delRow_1"/>
    </td>
    <td>
        <input type='checkbox' class='check' name="ele.check"/>
    </td>
    <td>
        <input type='text' name="ele.text" required="required"/>
    </td>
</tr>
</table>
...


我想从ele.text获取文本值,并从ele.check获取复选框值。我将非常感谢您的帮助。

最佳答案

最好的猜测是,您似乎在混合传统的JavaScript和jQuery而又不了解其连接。

走这行:

var check = table.rows[i].cells[j-1].find('input'); //err


如果您简单地将其分开,最终将发现问题。

var check = table.rows[i]


然后,如果返回非空值,则将其添加:

var check = table.rows[i].cells[j-1]


Than也应为非null,因此在其末尾添加。

var check = table.rows[i].cells[j-1].find('input'); //err


这应该会出错,因为find元素上没有td方法。

但是,find是一种众所周知的jQuery方法,因此您可能打算


在代码中包含对jQuery的引用
将其更改为jQuery语法
var check = $(table.rows[i].cells[j-1]).find('input');


或者,您也可以考虑使用

table.rows[i].cells[j-1].querySelector("input");


我还没有测试过,但是应该做你想做的。

关于javascript - 获取输入值并将其保存到数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25506915/

10-12 01:25
查看更多