动态新建span,input,select,TABLE 行列

  1. /*
  2. * 参数 :
  3. * textValue: 文本值( 欲新建文本单元格文本值 )
  4. * idName    : ID 值 ( 欲新建文本单元格ID )
  5. */
  6. function createTextE(obj,idName,textValue){
  7. var span=document.createElement("span");
  8. span.setAttribute("id",idName);
  9. span.appendChild(text1=document.createTextNode(textValue));
  10. obj.appendChild(span);
  11. }
  12. /*
  13. *     用于为特定单元格置入 INPUT类型 元素(新建)
  14. * 参数 :
  15. *     obj : 欲新建 INPUT 元素的宿主单元格对象
  16. * textValue: 文本值( 欲新建文本单元格文本值 )
  17. * idName    : ID 值 ( 欲新建文本单元格ID )
  18. */
  19. function createInputE(obj,idName,inputType,inputValue){
  20. var span=document.createElement("span");
  21. span.setAttribute("id",idName);
  22. var input=document.createElement("input");
  23. input.setAttribute("type",inputType);
  24. input.setAttribute("value",inputValue);
  25. span.appendChild(input);
  26. obj.appendChild(span);
  27. }
  28. /*
  29. * 用于生成SELECT元素
  30. */
  31. function createSelectE(obj,idName){
  32. var span=document.createElement("span");
  33. span.setAttribute("id",idName);
  34. var select=document.createElement("select");     // 新建SELECT元素
  35. var op=document.createElement("option");      // 新建OPTION (op)
  36. op.setAttribute("value",0);          // 设置OPTION的 VALUE
  37. op.appendChild(document.createTextNode("请选择---")); // 设置OPTION的 TEXT
  38. select.appendChild(op);           // 为SELECT 新建一 OPTION(op)
  39. span.appendChild(select);
  40. obj.appendChild(span);
  41. }
  42. --------------------------------------------------------------------
  43. 实用例子
  44. var index=0; 
  45. function addRow(){
  46. index++;
  47. // 要增删行的TABLE (tbody)
  48. t = document.getElementById("omain");
  49. objRow = t.insertRow(0);      // 在TABLE中增加ROW,也即<TR>
  50. objCell=objRow.insertCell(0);     // 在行中增加单元格 也即<TD>
  51. objCell.setAttribute("id","goodsid");
  52. createTextE(objCell,"goodsid",index); // 商品编号 goodsid
  53. objCell=objRow.insertCell(1);     // 在行中增加单元格 也即<TD>
  54. objCell.setAttribute("id","goodsname");
  55. createSelectE(objCell,"goodsname");
  56. objCell=objRow.insertCell(2);     // 在行中增加单元格 也即<TD>
  57. objCell.setAttribute("id","price");
  58. createTextE(objCell,"price","2.3(单价)");
  59. objCell=objRow.insertCell(3);     // 在行中增加单元格 也即<TD>
  60. objCell.setAttribute("id","count");
  61. createInputE(objCell,"count","text",index); // 订购天数
  62. objCell=objRow.insertCell(4);     // 在行中增加单元格 也即<TD>
  63. objCell.setAttribute("id","dcount");
  64. createInputE(objCell,"dcount","text",index); // 每天数量
  65. objCell=objRow.insertCell(5);     // 在行中增加单元格 也即<TD>
  66. objCell.setAttribute("id","totleprice");
  67. createTextE(objCell,"totleprice","总价"+index); // 总价
  68. objCell=objRow.insertCell(6);     // 在行中增加单元格 也即<TD>
  69. objCell.setAttribute("id","send");
  70. createTextE(objCell,"send","获赠"+index); // 
  71. objCell=objRow.insertCell(7);     // 在行中增加单元格 也即<TD>
  72. objCell.setAttribute("id","bdel");
  73. createInputE(objCell,"bdel","button","删除"+index);
  74. }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在el-table动态添加el-input,你可以使用插槽(slot)来实现。在你的el-table-column中,你可以使用template插槽来添加el-input。首先,在el-table-column中添加一个template标签,并设置slot-scope="scope"来获取行数据的上下文。然后,在template标签内部,根据你的需求来判断是显示el-input还是其他内容。在这个例子中,根据editIndex的值来确定是否显示el-input。如果editIndex不等于当前行的索引(scope.$index),则显示span和一个编辑图标。如果editIndex等于当前行的索引(scope.$index),则显示el-input和保存、取消按钮。你可以使用v-model绑定el-input的值。 以下是一个示例代码: ```html <el-table-column label="名" width="300"> <template slot-scope="scope"> <div v-if="editIndex !== scope.$index"> <span>{{ scope.row.name }}</span> <i class="el-icon-edit" @click="toEditName(scope.$index, scope.row.name)" /> </div> <div v-else> <el-input v-model="editName" size="mini" style="width: 60%" /> <el-button type="text" @click="toSaveName(scope.row)">保存</el-button> <el-button type="text" @click="toCancelEdit()">取消</el-button> </div> </template> </el-table-column> ``` 在上述代码中,toEditName方法用于设置editIndex和editName的值,从而切换编辑状态。toCancelEdit方法用于取消编辑,将editIndex和editName重置为空。toSaveName方法用于保存编辑后的值,并更新数据。你可以根据自己的需求来定义这些方法的具体实现。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [vue el-table实现自定义表头](https://download.csdn.net/download/weixin_38530846/12930705)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [【vue】el-table里面点击展开嵌套el-input和el-select 动态切换数据](https://blog.csdn.net/weixin_48200589/article/details/126127294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值