![](https://img.haomeiwen.com/i15605367/289ff4ff87b1f8bd.png)
taobao.png
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
* {
margin: 0;
padding: 0;
list-style: none;
}
.web {
width: 500px;
margin: 20px auto;
}
.option {
font-size: 16px;
border-bottom: 1px solid #bbb;
}
.option li {
margin-bottom: 20px;
}
.option span {
display: inline-block;
color: #666;
padding: 5px 10px;
border: 1px solid #999;
}
.option li>span {
cursor: pointer;
}
.option p {
/*font-weight: bold;*/
display: inline-block;
width: 50px;
text-align: center;
color: #000;
border: 1px solid transparent;
}
.option .active {
border: 2px solid #f60;
}
.price {
margin-top: 20px;
}
.price em {
font-style: normal;
font-size: 22px;
color: #f60;
}
input {
width: 380px;
height: 45px;
line-height: 45px;
background: #f60;
border: none;
outline: none;
color: #fff;
font-size: 23px;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="web">
<ul class="option">
<li class="type model">
<p>型号</p>
<span data-mprice = "5288" class="active">4.7英寸</span>
<span data-mprice = "6088">5.5英寸</span>
</li>
<li class="type color">
<p>颜色</p>
<span class="active">银色</span>
<span>金色</span>
<span>深空灰色</span>
</li>
<li class="type Memory">
<p>内存</p>
<span data-mprice="0" class="active">16GB</span>
<span data-mprice="888">64GB</span>
<span data-mprice="1600">128GB</span>
</li>
<li class="type edition">
<p>版本</p>
<span class="active">公开版</span>
<span>移动赠费版</span>
<span>联通合约版</span>
</li>
</ul>
<div class="price">价格:<em>¥5288.00</em></div>
<input type="button" value="立即购买" />
</div>
<script type="text/javascript">
//点击切换颜色
let allspan = document.querySelectorAll("span");
let price = document.querySelector(".price em");
console.log(price)
for(let i = 0; i < allspan.length; i++) {
allspan[i].addEventListener("click", () => {
let spanParent = allspan[i].parentNode;
for(let j = 0; j < spanParent.children.length; j++) {
spanParent.children[j].classList.remove("active");
}
allspan[i].classList.add("active");
//方法一
// totalPrice(allspan[i]);
//方法二
// sumPrice();
//方法三
sumPrice1(allspan[i]);
})
}
//计算价格
//型号
//内存
//方法一
let p1 = 5288,
p2 = 0;
function totalPrice(obj) {
if (obj.parentNode.classList.contains("model")) {
for (let i=1;i<obj.parentNode.children.length;i++) {
if (obj.parentNode.children[i].classList.contains("active")) {
p1 = i ==1?5288:6088;
}
}
}
if (obj.parentNode.classList.contains("Memory")) {
for (let j=1;j<obj.parentNode.children.length;j++) {
if (obj.parentNode.children[j].classList.contains("active")) {
p2 = j ==1?0:j==2?800:1600;
}
}
}
price.innerHTML = "¥" +(p1+p2).toFixed(2);
}
//方法二
let modelSpan = document.querySelectorAll(".model span");
memorySpan = document.querySelectorAll(".Memory span");
function sumPrice(){
let price1 = 0,
price2 = 0;
for (let i=0;i<modelSpan.length;i++) {
if (modelSpan[i].classList.contains("active")) {
price1 = i==0?5288:6088;
}
}
for (let j=0;j<memorySpan.length;j++) {
if (memorySpan[j].classList.contains("active")) {
price2 = j==0?0:j==1?5288:6088;
}
}
price.innerText = "¥" +(price1+price2).toFixed(2);
}
//方法三
let pr1 = 5288,
pr2 = 0;
function sumPrice1(obj){
if (obj.parentNode.classList.contains("model")) {
pr1 = parseFloat(obj.dataset.mprice);
}
if (obj.parentNode.classList.contains("Memory")) {
pr2 = parseFloat(obj.dataset.mprice);
}
price.innerText = "¥" +(pr1+pr2).toFixed(2);
}
</script>
</body>
</html>
网友评论