会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133307个问题
JAVA 全系列/第五阶段:网页编程和设计/CSS3(旧) 436楼
JAVA 全系列/第五阶段:网页编程和设计/Jquery(旧) 437楼
JAVA 全系列/第五阶段:网页编程和设计/Javascript 语言(旧) 439楼

2021 01 27

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			
			tr{
				height: 70px;
				
			}
			td ,th{
				
				width: 150px;
				
				
				text-align: center;
				
			}
			
		</style>
		<script>
			
			function  addNode(){
				
				//获得table表格对象
				var  tab=document.getElementById("tab"); 
				
				//创建tr节点对象
				
				var tr =document.createElement("tr");
				
				//创建td对象
				
				var  td =document.createElement("td");
				//											 失去焦点
				td.innerHTML="<input type='text' size='10px' onblur='seaveVal(this)'/>"
				
				var  td2 =document.createElement("td");
				
				td2.innerHTML="<input type='text' size='10px'  onblur='seaveVal(this)'/>"
				
				var  td3 =document.createElement("td");
				
				td3.innerHTML="<input type='button'  value='添加'/> "+
				              "<input type='button' value='删除' onclick='removeNode(this)'/>"
				
				tab.appendChild(tr);
				
				tr.appendChild(td);
				
				tr.appendChild(td2);
				
				tr.appendChild(td3);
				
				 
				
			}
			
			
			function  seaveVal(thi){
				
				
				//获得父亲级节点
				
				var  td =thi.parentNode;
				
				td.innerText=thi.value;
			
			}
			
			
			function removeNode(thi){
				
				//获得tr节点
				
				var tr= thi.parentNode.parentNode;
				
				tr.remove();
				
			}
		</script>
		
		
		
	</head>
	<body>
		
		<table border="1px" align="center" id="tab">
			<tr>
				<th>图书名称</th>
				<th>图书价格</th>
				<th>操作</th>
			</tr>
			<tr>
				<td>javaSE</td>
				<td>19</td>
				<td>
					
					<input type="button" name="" id="" value="添加"  onclick="addNode()"/>
					
					<input type="button" name="" id="" value="删除" onclick='removeNode(this)' />
					
				</td>
			</tr>
			<tr>
				<td>javaEE</td>
				<td>39</td>
				<td>
					
					<input type="button" name="" id="" value="添加" onclick="addNode()"/>
					
					<input type="button" name="" id="" value="删除" onclick='removeNode(this)'/>
					
				</td>
			</tr>
		</table>
		
		
	</body>
</html>

老师,

function  seaveVal(thi){
				
				
				//获得父亲级节点
				
				var  td =thi.parentNode;
				
				td.innerText=thi.value;
			
			}

的thi参数是自己定义(任意写)用来接收数据的吗?

JAVA 全系列/第五阶段:网页编程和设计/Javascript 语言(旧) 442楼
JAVA 全系列/第五阶段:网页编程和设计/Javascript 语言(旧) 443楼

老师,您好,我想要请教以下为啥,我按删除按钮,他不会将整行数据删除

点击前:

image.png

点击后:

image.png

我的代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>DOM案例实现</title>
		<style>
			tr{
				height: 70px;
			}
			td,th{
				width: 200px;	
				/*内容居中*/		
				text-align: center;			
			}
		</style>
		<script>
			//添加操作
			function add(){
				//获得table表格对象
				var table = document.getElementById("table1");
				//创建tr结点对象(行),并放到table里面
				var tr = document.createElement("tr");
				table.appendChild(tr);				
				//创建td结点对象(列),并放到tr里面
				var td1 = document.createElement("td");
				var td2 = document.createElement("td");
				var td3 = document.createElement("td");	
				tr.appendChild(td1);
				tr.appendChild(td2);
				tr.appendChild(td3); 				
				//td内的内容
				td1.innerHTML = "<input type='text' size='10px' onblur='save(this)'/>";
				td2.innerHTML = "<input type='text' size='10px' onblur='save(this)'/>";
				td3.innerHTML = "<input type='button' value='添加' />"+
								"<input type='button' value='删除' onclick='removeNode(this)' />";	
			}
			//保存操作
			function save(thi){
				//间接获得父节点
				var td = thi.parentNode;
				//将值交给外层的父节点
				td.innerText = thi.value;
			}
			//删除操作
			function removeNode(thi){
				var tr= thi.parentNode.parentNode;
				tr.remove();
			}

		</script>
	</head>
	<body>
		<table id="table1" border="1px" align="center">
			<tr>
				<th>图书名称</th>
				<th>图书价格</th>
				<th>操作</th>
			</tr>
			<tr>
				<td>javaSE</td>
				<td>19</td>
				<td>
					<input type="button" name="" id="" value="添加" onclick="add()" />
					<input type="button" name="" id="" value="删除" onclick="removeNode(this)"/>
				</td>
			</tr>
			<tr>
				<td>javaEE</td>
				<td>22</td>			
				<td>
					<input type="button" name="" id="" value="添加" onclick="add()" />
					<input type="button" name="" id="" value="删除" onclick="removeNode(this)"/>				
				</td>
			</tr>
		</table>
	</body>
</html>


JAVA 全系列/第五阶段:网页编程和设计/Javascript 语言(旧) 444楼
JAVA 全系列/第五阶段:网页编程和设计/HTML5(旧) 447楼

老师指点一下,我需要在右侧加一个滚动条分页加载数据,默认是每次加载15条,直到最后加载完,急急,谢谢


<template>
  <div class="animated fadeIn">
    <Row>
      <Col :sm="24" :md="24" :lg="23">
        <div class="con">
          <Input style="width:7%;margin-left:5px"  v-model="start_id"/>
          -
          <Input style="width:7%;margin-left:5px" v-model="end_id"/>
          <Input style="width:40%;margin-left:5px" placeholder="检索内容" v-model="search_data" @keyup.enter.native="search"/>
          <Button type="primary" style="margin-left:15px" @click="search">检索</Button>
          <!-- <Button type="primary" style="margin-left:15px" @click="check_add=true">新增</Button> -->
          <Button type="primary" style="margin-left:15px" id="excel" @click="excel_out">
            excel
            <Icon type="ios-download-outline" size=10 />
          </Button>
          <Checkbox @on-change="all_data" v-model="checked">
            <span> 导出全部数据</span>
          </Checkbox>
        </div>
      <!-- 数据列表  -->


          <Table :columns="sys_m" :data="sys_m_data_show"@scroll="scroll"  @on-select="select"   ref="selection" height=520 stripe border style="margin-top: -10px"></Table>

<!--        <div style="margin: 10px;overflow: hidden">-->
<!--          <div style="float: right;">-->
<!--            <Page :total="total" :current.sync="page" :page-size="15" show-elevator @on-change="page_c"></Page>-->
<!--          </div>-->
<!--        </div>-->


      </Col>
    </Row>
    <Modal v-model="check_change" title="机台信息修改" width="570" @on-ok="change" draggable scrollable>
      <div style="text-align:center">
        <Form inline :model="change_data">
          <FormItem label='机台编号' style="width:40%">
            <Input style="width:65%;" v-model="change_data.jtmJtbh" disabled/>*
          </FormItem>
          <FormItem label='机台名称' style="width:40%">
            <Input style="width:65%;" v-model="change_data.jtmJtmc" disabled/>
          </FormItem>
          <FormItem label='机台吨位' style="width:40%">
            <Input style="width:65%;" v-model="change_data.jtmJtdw" disabled/>*
          </FormItem>
          <FormItem label='所属组别' style="width:40%">
            <Input style="width:65%;" v-model="change_data.jtmBbdm" disabled/>*
          </FormItem>
          <FormItem label='模具最大宽度' style="width:40%">
            <Input style="width:51%;margin-left:-15px" v-model="change_data.jtmMaxkd"/>mm
          </FormItem>
          <FormItem label='模具最小宽度' style="width:40%">
            <Input style="width:51%;margin-left:-15px" v-model="change_data.jtmMinkd"/>mm
          </FormItem>
          <FormItem label='模具最大厚度' style="width:40%">
            <Input style="width:51%;margin-left:-15px" v-model="change_data.jtmMaxhd"/>mm
          </FormItem>
          <FormItem label='模具最小厚度' style="width:40%">
            <Input style="width:51%;margin-left:-15px" v-model="change_data.jtmMinhd"/>mm
          </FormItem>
          <FormItem style="width:80%;line-height:1">
            <div style="text-align:left;color: red;font-size: 10.5px;line-height:25px">
              <ul>
                <li>请用;隔开不同的材质和产品代号</li>
                <li>请输入*代替所有可生产的材质和产品</li>
              </ul>
            </div>
            <div style="text-align:left;font-size: 10.5px;line-height:25px">
              【可生产的塑料材质】
              <Input style="width:100%;" type="textarea" v-model="change_data.jtmCzdm"/>
            </div>
            <div style="text-align:left;font-size: 10.5px;line-height:25px">
              【可生产的产品代号】
              <Input style="width:100%;" type="textarea" v-model="change_data.jtmWldm"/>
            </div>

          </FormItem>
        </Form>
      </div>
    </Modal>
  </div>
</template>
<script>
import * as util from '../../util'
export default {
  data () {
    return {
      loading:false,
      check_change:false,
      now_data:{},
      checked:false,
      start_id:1,
      end_id:999,
      total:1,
      page:1,
      search_data:'',
      change_data:{},
      sys_m:[
        {
          type: 'index',
          width: 35,
          align: 'center',
          fixed:'left'
        },
        {
          title:"机台",
          key:"jtmJtbh",
          width: 40,
          sortable:true,
        },
        {
          title:"机台名称",
          key:"jtmJtmc",
          width: 60,
          sortable:true,
        },
        {
          title:"吨位",
          key:"jtmJtdw",
          width: 40,
          sortable: true
        },
        {
          title:"组别",
          key:"jtmBbdm",
          width: 40,
          sortable:true,
        },
        {
          title:"模具最小宽度(mm)",
          key:"jtmMinkd",
          width: 110,
          sortable: true
        },
        {
          title:"模具最大宽度(mm)",
          key:"jtmMaxkd",
          width: 110,
          sortable: true
        },
        {
          title:"模具最小厚度(mm)",
          key:"jtmMinhd",
          width: 110,
          sortable: true
        },
        {
          title:"模具最大厚度(mm)",
          key:"jtmMaxhd",
          width: 110,
          sortable: true
        },
        {
          title:"可生产的塑料材质",
          key:"jtmCzdm",
          width: 120,
          sortable:true,
        },
        {
          title:"可生产的产品代号",
          key:"jtmWldm",
          width: 120,
          sortable:true,
        },
        {
          title:"操作",
          key:"action",
          width:70,
          fixed:'right',
          align: 'center',
          render: (h, params) => {
            return h('div', [
              h('Button', {
                props: {
                  type: 'primary',
                  size: 'small'
                },
                style: {
                  marginRight: '1px'
                },
                on: {
                  click: () => {
                    //this.show(params.index)
                    // this.now_op = params.index
                    this.change_data = JSON.parse(JSON.stringify(this.sys_m_data_show[params.index]))
                    // console.log(this.change_data)
                    this.check_change = true
                  }
                }
              }, '修改')
            ]);
          }
        }
      ],
      sys_m_data:[],
      sys_m_data_show:[],
    }
  },
  methods: {
  

    excel_out(){
      util.excel(this.sys_m_data,"机台特征",this.sys_m,1,1)
    },
    get_info (page) {
      console.log(page)
      this.page = page
      var url2 = 'project/machine/get_machine_features_info/'+page+'/'+15
      var url2_all = 'project/machine/get_machine_features_info/1/50000'
      util._fetch(url2,this,'info','get',this.search_data,page)
      util._fetch(url2_all,this,'info_all','get',this.search_data,page)
    },
    page_c(page){
      this.page=page
      page--
      this.sys_m_data_show = this.sys_m_data.slice(page*15,(page+1)*15)
    },
    change(){
      fetch(util.base_url+'project/machine/update_machine_features_info',{
        method:"POST",
        body:JSON.stringify([this.change_data]),
        headers:{"content-type":"application/json"}
      }).then(res=>res.text()).then(res=>{
        res = JSON.parse(res)
        if(res.msg!="success"){
          this.$Message.error(res.msg)
        }
        else{
          this.get_info(this.page)
          this.$Message.success("修改成功!")
        }
        //console.log(res)
      })
    },
    select(item){
      console.log(item)
    },
    search(){
      this.$Message.loading("加载中")
      var s = this.start_id-1
      var e = this.end_id
      var show_temp = []
      if(s<0||e<=0){
        this.$Message.error("无此id")
        return
      }
      if(s>e-1){
        this.$Message.error("无此id区间")
        return
      }
      fetch( util.base_url+'project/machine/get_machine_features_info/1/2000',{
        method:"GET",
        headers:{"content-type":"application/json"}
      }).then(res=>res.text()).then(res=>{
        // console.log(res)
        res = JSON.parse(res)
        if(res.msg=="success"){
          if(e>res.data.data.length-1) e = res.data.data.length
          if(this.search_data==''){

            this.sys_m_data_show = res.data.data.slice(s,e)
          }
          else{
            for(let i of res.data.data.slice(s,e)){
              //将对象转为字符串,检索其中是否有关键字,问题:中文异常
              var ci=JSON.stringify(i)
              if(ci.indexOf(this.search_data)==-1)continue
              show_temp.push(i)
            }
            this.sys_m_data_show = show_temp
          }
          // this.total = 10
        }
        else{
          alert(res.msg)
        }
      }).catch(err=>{
        alert(err+"网络原因:请检查网络连接或服务器状态")
        console.log(err+"网络原因:请检查网络连接或服务器状态")
      })
    },
    all_data(checked){
      if(checked){
        this.sys_m_data_show=this.sys_m_data
      }
      else{
        this.page_c(1)
      }
    },
  },
  mounted(){
    this.get_info(1)
    var table = document.getElementsByTagName("table")[0];
    util.cc(this.sys_m,table)
   

  }

}
</script>

blob.png

JAVA 全系列/第五阶段:网页编程和设计/Javascript 语言(旧) 449楼

老师,我也遇到这个问题了    怎么转换的啊image.png

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
		<link rel="stylesheet" type="text/css" href="css/reset.css" />
		
		<link rel="stylesheet" type="text/css" href="css/jd.css" />
		
		<link rel="stylesheet" type="text/css" href="icon/iconfont.css" />
		
		<script type="text/javascript" src="js/jd.js"></script>
		
	</head>
	<body>
		
		<!--导航开始-->
		
			<div class="nav">
				
				<div class="warp">
					
					<ul class="nav_ul1">
						<li><a href=""><i class="iconfont">&#xe8ff;</i>京东首页</a></li>
						<li><a href="">配送到:北京</a></li>
					</ul>
					
					 
					<ul class="nav_ul2">
						<li><a href="">洋洋宝贝</a><span>|</span></li>
						<li><a href="">我的订单</a><span>|</span></li>
						<li><a href="">我的京东</a><span>|</span></li>
						<li><a href="">我的会员</a><span>|</span></li>
						<li><a href="">企业采购</a><span>|</span></li>
						<li><a href="">京东手机</a><span>|</span></li>
						<li><a href="">关注京东</a><span>|</span></li>
						<li><a href="">客服服务</a><span>|</span></li>
						<li><a href="">网站导航</a></li>
					</ul>
					
				</div>
				
				
			</div>
		
		<!--导航结束-->
		
		<!--搜索框开始-->
		
			<div class="search">
				
				<div class="warp">
					
					<img src="img/logo.jpg" />
					
					
					<div  class="search_div">
						
						<input type="text"  class="search_text"/>
						<input type="button" value="搜索"  class="search_but"/>
						
					</div>
					
					
				</div>
				
				
			</div>
					
		<!--搜索框结束-->
		
		<!--标题开始-->
		
		<div class="title warp">
			
			<h3>全部商品</h3>
			
			<div>
				
				<span>配送至</span>
				
				<select>
					
					<option>昌平区</option>
					
					<option>顺义区</option>
					
					<option>大兴区</option>
					
					<option>朝阳区</option>
					
				</select>
				
			</div>
			
		</div>
		
		<!--标题结束-->
		
		<!--显示菜单的开始-->
		
		<div class="tips warp">
			
			<ul>
				<li><input type="checkbox" name="fav" id="all" onclick="checkTest1(this)" />全选</li>
				<li>商品</li>
				<li>单价</li>
				<li>数量</li>
				<li>小计</li>
				<li>数量</li>
			</ul>
			
			
		</div>
		
		<!--显示菜单的结束-->
		
		<!--商品详情展示开始-->
		
		<div class="info warp">
			
			<ul>
				<li class="info_1"><input type="checkbox" name="fav" onclick="checkTest2()" /></li>
				<li class="info_2"> <img src="img/img1.jpg" width="80px"/></li>
				<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服 </a></li>
				<li class="info_4"><a>颜色:灰色+粉红</a></li>
				<li class="info_5">¥152.6</li>
				<li class="info_6">					
					<button onclick="checkTest3(this,1)">-</button>
					<input type="text" value="1" />
					<button class="bot" onclick="checkTest3(this,2)">+</button>					
				</li>
				<li class="info_7">¥152.6</li>
				<li class="info_8">
					<a>删除</a><br />
					<a>移至我的关注</a>
				</li>
			</ul>
					
		</div>
		
		<div class="info warp">
			
			<ul>
				<li class="info_1"><input type="checkbox" name="fav" onclick="checkTest2()"/></li>
				<li class="info_2"> <img src="img/img2.jpg" width="80px"/></li>
				<li class="info_3"><a>【京东超市】联想电脑,第六代智能英特尔 </a></li>
				<li class="info_4"><a>颜色:灰色+粉红</a></li>
				<li class="info_5">¥152.6</li>
				<li class="info_6">					
					<button checkTest3(this,1)>-</button>
					<input type="text" value="1" />
					<button class="bot" checkTest3(this,2)>+</button>					
				</li>
				<li class="info_7">¥152.6</li>
				<li class="info_8">
					<a>删除</a><br />
					<a>移至我的关注</a>
				</li>
			</ul>
					
		</div>
		
		<div class="info warp">
			
			<ul>
				<li class="info_1"><input type="checkbox" name="fav" onclick="checkTest2()"/></li>
				<li class="info_2"> <img src="img/img3.jpg" width="80px"/></li>
				<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服 </a></li>
				<li class="info_4"><a>颜色:灰色+粉红</a></li>
				<li class="info_5">¥152.6</li>
				<li class="info_6">					
					<button checkTest3(this,1)>-</button>
					<input type="text" value="1" />
					<button class="bot" checkTest3(this,2)>+</button>					
				</li>
				<li class="info_7">¥152.6</li>
				<li class="info_8">
					<a>删除</a><br />
					<a>移至我的关注</a>
				</li>
			</ul>
					
		</div>
		
		<!--商品详情展示结束-->
		
		
		<!--结算模块开始-->
		
		<div class="balance warp">
		
			<ul class="balance_ul1">
				<li><input type="checkbox" name="fav" onclick="checkTest1(this)" />全选</li>
				<li><a>删除选中商品</a></li>
				<li><a>移到我的关注</a></li>
				<li><a>清除下柜商品</a></li>
			</ul>
			
			<ul class="balance_ul2">
				<li>已经选择<span>1</span>件商品</li>
				<li>总价<span>¥12</span></li>
				<li>
					<button class="butt">去结算</button>				
				</li>
			</ul>
			
		</div>
		<!--结算模块结束-->
		
	</body>
</html>

JS代码:

	//获得所有的多选框对象
	var fav = document.getElementsByName("fav");

//判断是否全选操作
function checkTest1(th){
	
	var flag = th.checked;
	
		for(var i in fav){
			fav[i].checked = flag;
		}	
	}

//单选决定全选操作
function checkTest2(){
	
	var flag = true;
	
	for(var i=1;i<fav.length-1;i++){
		
		if(!fav[i].checked){
			
			flag=false;
			break;
		}		
	}
	//决定框是否勾选
	fav[0].checked = flag;
	
	fav[fav.length-1].checked = flag;
}

//控制数量的增加和减少
function checkTest3(th,sig){
	
	var pre;
	
	if(sig=="1"){
		
	 //获得下一个节点
	 pre = th.nextElementSibling;
	 
	 if(Number(pre.value)>0){
	 	//获得节点的value值
	pre.value = Number(pre.value)-1;
	 }

	}else{
		
	 //获得上一个节点对象
	 pre=th.previousElementSibling;
	 
	 //获得节点的value值
	pre.value = Number(pre.value)+1;
	
	}
	
	//计算每一个商品总的价格
	//获得每一个商品的单价         parentNode:父节点      innerHTML:该商品的价格
	var val = pre.parentNode.previousElementSibling.innerHTML;
	
	//计算总的价格       Number(pre.value):商品的数量
	var zong = Number(val)*Number(pre.value);
	
	//把总的价格赋值给指定的对象
	pre.parentNode.nextElementSibling.innerHTML = "¥"+zong;
	
}




JAVA 全系列/第五阶段:网页编程和设计/Javascript 语言(旧) 450楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637