Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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_Dom_Datatables - Fatal编程技术网

Javascript 如何删除行并在文本区域(标题除外)中显示删除的行?

Javascript 如何删除行并在文本区域(标题除外)中显示删除的行?,javascript,dom,datatables,Javascript,Dom,Datatables,我正在尝试创建一个网页,允许用户发送订单请求。我希望使用Javascript在文本区域中显示其顺序或更改的摘要 我曾尝试将其存储在数组中,但textarea值返回到Undefined。我在文本区域得到一个未定义的或[Object HTML] 将行添加到ID为的表中 function addRow(tableID) { var table = document.getElementById(tableID); var rowCo

我正在尝试创建一个网页,允许用户发送订单请求。我希望使用Javascript在文本区域中显示其顺序或更改的摘要

我曾尝试将其存储在数组中,但textarea值返回到Undefined。我在文本区域得到一个未定义的或[Object HTML]

将行添加到ID为的表中

function addRow(tableID) {


                var table = document.getElementById(tableID);

                var rowCount = table.rows.length;
                var row = table.insertRow(rowCount);


                var colCount = table.rows[0].cells.length;

                for(var i=0; i<colCount; i++) {


                    var newcell = row.insertCell(i);
                    row.id = rowCount;





                    newcell.innerHTML = table.rows[1].cells[i].innerHTML;
                    newcell.id= i+1;
                    //alert(newcell.childNodes);
                    switch(newcell.childNodes[0].type) {
                        case "text":
                                newcell.childNodes[0].value = "";


                                break;
                        case "checkbox":
                                newcell.childNodes[0].checked = false;
                                break;
                        case "select-one":
                                newcell.childNodes[0].selectedIndex = 0;
                                break;
    }
}
}


       // DELETE ROW  and try to add to array and set value of textarea


function deleteRow(tableID) {
            try {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;
            var colCount = table.rows.cells.length;
            var rowInfo = new Array();


        for (var i = rowCount - 2; i > 0; i--) {
                var row = table.rows[i];


                var chkbox = row.cells[0].childNodes[0];

                if(null != chkbox && true == chkbox.checked ) {
                    for(var m = 1;m<rowInfo.l;m++)
                {
                    rowInfo.push(table.rows[i].cells[m]);
                    document.getElementById("myEmail").value = rowInfo[0];
                }

                    if(rowCount >0){


                        table.deleteRow(i);
                        rowCount--;


                }
            }


            }
            }catch(e) {
                alert("Please select Part you want to remove");
            }
        }








 <table id="PartTable" class="table table-bordered table-responsive-sm table-striped text-center">
               <thead>

                     <th class="text-center">Select</th>
                     <th class="text-center">Part Number</th>
                     <th class="text-center">Old Quantity</th>
                     <th class="text-center">New Quanity</th>
                      <td class="text-center">Price</td>


                </thead><!-- END OF TABLE HEADERS-->

                                        <!-- BEGINNING OF TABLE DATA-->
                                        <tr id="firstrow">


              <td id="selected" ><input class="form-check-input" type="checkbox" ></td>
            <td id="0"contenteditable="true"><input type="text" class="form-control" name="partNumber"></td>
             <td id="0"contenteditable="true"><input type="text" class="form-control" name="oldquanity"></td>
              <td id="0" contenteditable="true"><input type="text" class="form-control" name="newquantity"></td>
               <td id="0" contenteditable="true">$<input type="text" class="form-control" name="price"></td>
                                        </tr>
                                    </table>  

     <div>
<label for="myEmail">EMAIL</label>
      <textarea id="myEmail" class="form-control" rows="3">
</textarea>

                                               </div>
函数addRow(tableID){
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
var colCount=table.rows[0].cells.length;
对于(变量i=0;i 0;i--){
var row=表.行[i];
var chkbox=行。单元格[0]。子节点[0];
if(null!=chkbox&&true==chkbox.checked){
对于(var m=1;m0){
表1.删除行(i);
行数--;
}
}
}
}捕获(e){
警报(“请选择要删除的部件”);
}
}
挑选
零件号
旧数量
新数量
价格
$
电子邮件

/*我想把数组放在文本区域,这样将来我就可以发送电子邮件了。我想我处理这个问题的方法不对。。若有其他方法来解决这个问题,那个就更好了。请帮助*/

我制作了一个小示例来解释这个概念(非常简单),当然,您可以轻松地将其集成到代码中:

var srcData=[
{名称:'Mickey',颜色:'orange',武器:'nunchucks'},
{名字:'狮子座',颜色:'蓝色',武器:'剑'},
{名称:'Don',颜色:'purple',武器:'bo'},
{名称:'Raph',颜色:'red',武器:'sai'},
];
var dataTable=$('#mytable')。dataTable({
sDom:'t',
数据:srcData,
栏目:[
{title:'name',data:'name'},
{标题:'color',数据:'color'},
{
标题:"武器",,
资料:"武器",,
render:data=>data+'x'
},
]
});
$('#mytable')。在('click','button',function()上{
让rowClicked=dataTable.rows($(this.closest('tr'));
让msg=Object.values(rowClicked.data()[0]).toString();
$('#msg').val($('#msg').val()+msg+“\n”);
rowClicked.remove();
dataTable.draw();
})
td按钮{float:right}
text区域{宽度:100%}


我们使用jQuery更好吗?嗨,迈克,欢迎来到Stack Overflow!为了更好地提供建议,最好提供一个工作示例。这可以在这个页面上完成,也可以在另一个站点上完成,比如JSFiddle或CodePen。但是,乍一看,您可能希望尝试将数组转换为字符串。TextArea值只能显示字符串。如果您对如何编写Javascript非常自信,请使用jQuery。在使用库之前,先学习基础知识和中间技术。感谢您的帮助。但是,我在表中有用户输入。。表格是表格的一部分。。这仍然有效吗?您可以访问第三列中输入字段的值,例如:
rowClicked.node().find('td:eq(2)input').val()
。我这里指的是我的例子,因为你可以马上试试。如果您准备了自己的JSFIDLE或codepen,我们可以从代码的角度进行讨论。否则,在没有必要的上下文的情况下讨论和解决问题就不那么容易了。