Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript循环遍历具有类名的表行_Javascript_Arrays - Fatal编程技术网

javascript循环遍历具有类名的表行

javascript循环遍历具有类名的表行,javascript,arrays,Javascript,Arrays,下面是下表代码,我想将所有TD值存储到一个数组中 <tr class="item-row"> <td class="item-name"><textarea>Item</textarea></td> <td class="description"><textarea>Item</textarea></td> <td><textarea class=

下面是下表代码,我想将所有TD值存储到一个数组中

<tr class="item-row">
    <td class="item-name"><textarea>Item</textarea></td>
    <td class="description"><textarea>Item</textarea></td>
    <td><textarea class="cost">$0.00</textarea></td>
    <td><textarea class="qty">0</textarea></td>
    <td><span class="price">$0.00</span></td>
</tr>

<tr class="item-row">
    <td class="item-name"><textarea>Item</textarea></td>
    <td class="description"><textarea>Item</textarea></td>
    <td><textarea class="cost">$0.00</textarea></td>
    <td><textarea class="qty">0</textarea></td>
    <td><span class="price">$0.00</span></td>
</tr>

但这并没有给我任何输出…我是javascript新手,所以我可能在很大程度上遗漏了一些东西。

对于成为javascript新手,您的第一个努力是很好的,但是,是的,有很多项目需要更新。:)

以下是您需要做的您正在尝试做的事情:

function checkForm() {
    var rows = document.getElementsByClassName("item-row");
    var arr = new Array();

    for (i = 0; i < rows.length; i++) {
        var cols = rows[i].getElementsByTagName("td");

        for (j = 0; j < cols.length; j++) {
            arr.push(cols[j].textContent);
        }
    }
}
函数检查表(){
var rows=document.getElementsByClassName(“项目行”);
var arr=新数组();
对于(i=0;i
  • 你需要在每一行中循环。最简单的方法是在for循环中从
    i=0
    i

  • 有了一行之后,您需要通过查找所有
    元素(
    var cols=rows[i].getElementsByTagName(“td”);来收集该行中的所有列

  • 然后,循环遍历每一行,就像对行(
    j=0
    to
    j

  • 最后,要获取每个
    td
    中包含的文本,请使用
    textContent
    属性…值(即
    属性)仅用于
    元素

  • 那里也有一些语法错误(在为
    循环构建
    时,您使用
    而不是
    ,在尝试获取
    td
    内容时,您使用
    val
    而不是
    value
    ),但这就是我所看到的一切


    编辑:我还假设您在添加HTML时没有粘贴
    标记,但是,如果您没有粘贴,您的
    标记必须位于
    中。对于JavaScript新手来说,这是一个很好的第一步,但是,是的,有很多项需要更新。:)

    以下是您需要做的您正在尝试做的事情:

    function checkForm() {
        var rows = document.getElementsByClassName("item-row");
        var arr = new Array();
    
        for (i = 0; i < rows.length; i++) {
            var cols = rows[i].getElementsByTagName("td");
    
            for (j = 0; j < cols.length; j++) {
                arr.push(cols[j].textContent);
            }
        }
    }
    
    函数检查表(){
    var rows=document.getElementsByClassName(“项目行”);
    var arr=新数组();
    对于(i=0;i
  • 你需要在每一行中循环。最简单的方法是在for循环中从
    i=0
    i

  • 有了一行之后,您需要通过查找所有
    元素(
    var cols=rows[i].getElementsByTagName(“td”);来收集该行中的所有列

  • 然后,循环遍历每一行,就像对行(
    j=0
    to
    j

  • 最后,要获取每个
    td
    中包含的文本,请使用
    textContent
    属性…值(即
    属性)仅用于
    元素

  • 那里也有一些语法错误(在为
    循环构建
    时,您使用
    而不是
    ,在尝试获取
    td
    内容时,您使用
    val
    而不是
    value
    ),但这就是我所看到的一切


    编辑:我还假设您在添加HTML时没有粘贴
    标记,但是,如果您没有粘贴,则
    标记必须位于
    中,您的代码几乎正确,问题是
    属性适用于表而不是
    tr
    s,因此您必须使用表而不是
    tr
    直接输入

    另一件事是
    getElementsByClassName
    返回元素数组,因此必须使用
    [index]
    获取元素

    最后一件事是要获取
    单元格的值
    不能使用
    val
    ,因此使用
    firstChild
    获取子项,使用
    获取代码中的值,或者更好地使用@pawel直接建议的
    单元格。textarea
    :)

    请尝试使用以下代码:

    函数检查表(){
    var table=document.getElementsByClassName(“yourTable”)[0];
    var arr=新数组();
    for(变量i=0,行;行=表。行[i];i++){
    for(var j=0,col;col=row.cells[j];j++){
    arr.push(row.cells[j].firstChild.value);
    }  
    }
    控制台日志(arr);
    }
    
    项目
    项目
    $0.00
    0
    $0.00
    项目
    项目
    $0.00
    0
    $0.00
    
    您的代码几乎是正确的,问题是
    属性不适用于
    tr
    s的表,因此您必须直接使用表,而不是
    tr

    另一件事是
    getElementsByClassName
    返回元素数组,因此必须使用
    [index]
    获取元素

    最后一件事是要获取
    单元格的值
    不能使用
    val
    ,因此使用
    firstChild
    获取子项,使用
    获取代码中的值,或者更好地使用@pawel直接建议的
    单元格。textarea
    :)

    请尝试使用以下代码:

    函数检查表(){
    var table=document.getElementsByClassName(“yourTable”)[0];
    var arr=新数组();
    for(变量i=0,行;行=表。行[i];i++){
    for(var j=0,col;col=row.cells[j];j++){
    arr.push(row.cells[j].firstChild.value);
    }  
    }
    控制台日志(arr);
    }
    
    项目
    项目