有时候,页面中信息的多少是不确定的,这时候我们可能需要使用动态创建的方法。页面的动态创建有多种方法,大致分为原生js和jq两种。他们都有在不同节点上添加元素的方法。
appendChild()//在parentNode节点的所有子节点后添加一个子节点。
createElement()//创建节点元素
createTextNode()//创建文本节点
removeChild()//删除节点
也可以直接用$().innerTTML+= ,直接写结构。结构如下。
for(let i=0;i<data.data.length;i++){
UserMenuCard.innerHTML+=
`
<tr>
<th style="display:none;">${data.data[i]._id}</th>
<th>${data.data[i].us}</th>
<th>${data.data[i].sex}</th>
<th>${data.data[i].age}</th>
<th>${data.data[i].phone}</th>
<th>${data.data[i].url}</th>
<th>${data.data[i].integral}</th>
<th><button class="Userdelect">删除</button></th>
<th><button class="UserChange">修改</button></th>
</tr>
`
}
同时js也提供了许多属性来获取元素节点。其中常用的如下:
childNodes//以数组形式获取当前节点的所有子节点
fiestChild//获取当前节点的第一个子节点
lastChild//获取当前节点的最后一个子节点
parentNode//获取当前节点的父节点
jq中的属性
$("<div></div>")//创建元素节点
父节点.append(子节点)//在所有孩子的末尾插入节点
父节点.appendTo(子节点//在所有孩子的首部插入节点
实例如下:
$.each(res.data,function(i,n){
$("#MenuCardorder").prepend("<tr><td>"+n.us+"</td><td>"+n.amount+"</td><td>"+n.phone+"</td><td>"+n.pay+"</td></tr>");
})
$("#MenuCardorder").prepend("<tr><td>"+"用户名字"+"</td><td>"+"订单金额"+"</td><td>"+"手机号码"+"</td><td>"+"支付状态"+"</td></tr>");
}