动态渲染出商品列表
function showProductList(productList) {
let str = `<tr>
<th>商品名称</th>
<th>商品图片</th>
<th>商品价格</th>
<th>商品数量</th>
<th>操作 </th>
</tr>`
let trArray = productList.map(item => {
return `<tr>
<td>${item.name}</td>
//控制宽度
<td><img src="${item.url}" width="100" alt="pic"/></td>
<td>${item.price}</td>
<td>${item.num}</td>
<td>删除</td>
</tr>`
})
str = str + trArray.join('')
table.innerHTML = str
}
完整代码
后端
let http = require('http')
let server = http.createServer(function (request, response) {
response.setHeader('Access-Control-Allow-Origin','*')
response.writeHead(200, { 'content-type': 'text/html;charset=utf-8' })
let productList = [
{
number: 1001,
name: 'javascript高级编程',
url: 'https://img2.baidu.com/it/u=1814268193,3619863984&fm=253&fmt=auto&app=138&f=JPEG?w=632&h=500',
price: 88.98,
num: 0,
state: false,
},
{ number: 1002, name: 'css高级编程', url: 'https://img1.baidu.com/it/u=3217543765,3223180824&fm=253&fmt=auto&app=120&f=JPEG?w=1200&h=750', price: 58.58, num: 0, state: false },
{ number: 1003, name: 'html高级编程', url: 'https://img2.baidu.com/it/u=2983827435,378917087&fm=253&fmt=auto&app=138&f=JPEG?w=374&h=500', price: 48.58, num: 0, state: false },
]
productList = JSON.stringify(productList)
response.write(productList)
response.end()
})
server.listen(3000, () => console.log('web服务启动成功,监听3000端口...'))
前端
<body>
<button class="product-list">获取商品列表数据</button>
<p></p>
<table>
</table>
<script>
const btn = document.querySelector('.product-list')
const pEle = document.querySelector('p')
const table = document.querySelector('table')
btn.addEventListener('click', function () { })
getProductList()
function getProductList() {
let xhr = new XMLHttpRequest()
xhr.open('get', 'http://10.7.162.138:3000')
xhr.send()
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
let data = xhr.responseText
let dataObj = JSON.parse(data)
showProductList(dataObj)
} else {
alert('网络出错 ' + xhr.status)
}
}
}
}
function showProductList(productList) {
let str = `<tr>
<th>商品名称</th>
<th>商品图片</th>
<th>商品价格</th>
<th>商品数量</th>
<th>操作 </th>
</tr>`
let trArray = productList.map(item => {
return `<tr>
<td>${item.name}</td>
<td><img src="${item.url}" width="100" alt="pic"/></td>
<td>${item.price}</td>
<td>${item.num}</td>
<td>删除</td>
</tr>`
})
str = str + trArray.join('')
table.innerHTML = str
}
</script>
</body>