js + ajax实现列表页到详情页的跳转

思路是:点击列表页时,把id传给详情页,在详情页接收列表页传递过来的id,并赋到data中。

第一步:列表页传参数id:
在这里插入图片描述

第二步:
//获取url中的参数
   	function getUrlParam(name) {
       var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
       var r = window.location.search.substr(1).match(reg);  //匹配目标参数
       if (r != null) return unescape(r[2]); return null; //返回参数值
   	};
   	//接收URL中的参数newsid
    var id = getUrlParam('newsid');
    console.log('id:'+id);
    function conJson(){
		$.ajax({
			type:'get',
			dataType:'json',
			data:{newsid:id}, //传接收到的参数id
			url:'https://www.xinlijishu.cn/api/News/GeNews',
			success:function(data){
				var html = '';
				var htmlRel = '';
				var data_sum = JSON.parse(data);
				var dataContent = JSON.parse(data)[0].content;
				
				html += '<div class="title_carry"><h4>'+data_sum[0].title+'</h4></div>'
				html += '<div class="read">'
				html += '	<span>'+data_sum[0].add_time+'</span>'
				html += '	<span>'+data_sum[0].click+'人阅读</span>'
				html += '</div>'
				
				$("#w_title").html(html);
				$("#parse").html(dataContent);
				htmlRel += '<div> 上一篇:<a href="'+data_sum[1].Prev+'">'+data_sum[1].Name+'</a></div>'
				htmlRel += '<div> 下一篇:<a href="'+data_sum[2].Next+'">'+data_sum[2].Name+'</a></div>'
				$("#rel").html(htmlRel);
			}
		})
	};
	conJson();
  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个简单的商品详情页的HTML、CSS和JavaScript代码示例: HTML代码: ``` <!DOCTYPE html> <html> <head> <title>商品详情页</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="container"> <h1>商品名称</h1> <div class="product"> <img src="product.jpg" alt="商品图片"> <div class="product-details"> <h2>商品描述</h2> <p>价格: <span class="price">100</span>元</p> <p>库存: <span class="inventory">100</span>件</p> <p>颜色: <select class="color"> <option value="red">红色</option> <option value="blue">蓝色</option> <option value="green">绿色</option> </select> </p> <button class="add-to-cart">加入购物车</button> </div> </div> </div> <script src="script.js"></script> </body> </html> ``` CSS代码: ``` * { box-sizing: border-box; font-family: Arial, sans-serif; } .container { max-width: 800px; margin: 0 auto; padding: 20px; } h1 { text-align: center; } .product { display: flex; flex-wrap: wrap; justify-content: space-between; } .product img { max-width: 50%; } .product-details { flex-basis: 40%; padding: 20px; border: 1px solid #ccc; } .product-details h2 { margin-top: 0; font-size: 1.2em; } .product-details p { margin: 0; font-size: 0.8em; color: #666; } .product-details select { margin-left: 10px; } .add-to-cart { background-color: #4CAF50; border: none; color: white; padding: 10px 20px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin-top: 20px; cursor: pointer; } .add-to-cart:hover { background-color: #3e8e41; } ``` JavaScript代码: ``` const priceElement = document.querySelector(".price"); const inventoryElement = document.querySelector(".inventory"); const colorElement = document.querySelector(".color"); const addToCartButton = document.querySelector(".add-to-cart"); // 假设有以下商品数据 const productData = { name: "商品名称", price: 100, inventory: 100, colors: ["red", "blue", "green"] }; // 根据商品数据更新面 function updateProductDetails() { document.title = productData.name + " - 商品详情页"; document.querySelector("h1").textContent = productData.name; priceElement.textContent = productData.price; inventoryElement.textContent = productData.inventory; colorElement.innerHTML = ""; productData.colors.forEach(color => { const option = document.createElement("option"); option.value = color; option.textContent = color; colorElement.appendChild(option); }); } // 加入购物车的事件处理程序 function addToCart() { // 这里可以编写将商品加入购物车的逻辑 alert("商品已加入购物车!"); } // 面加载后 window.addEventListener("load", () => { updateProductDetails(); // 更新面 addToCartButton.addEventListener("click", addToCart); // 绑定加入购物车的事件处理程序 }); ``` 这个示例面使用了Flexbox布局,并通过JavaScript动态更新商品详情。你可以根据你的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值