如何用jquery写多个购物车的数量曾减,我用jquery写了但只第一个购物车增减有用,其它的无效,代码如下:

<script>$(function(){vart=$("#text_box");$("#add").click(function(){t.val(parseInt(t.... <script>
$(function(){
var t = $("#text_box");
$("#add").click(function(){
t.val(parseInt(t.val())+1)
setTotal();
})
$("#min").click(function(){
t.val(parseInt(t.val())-1)
setTotal();
})
function setTotal(){
$("#total").html((parseInt(t.val())*3.95).toFixed(2));
}
setTotal();
})
</script>
<p>单价:3.95</p>
<input id="min" name="" type="button" value="-" />
<input id="text_box" name="" type="text" value="4" />
<input id="add" name="" type="button" value="+" />
<p>总价:<label id="total"></label></p>
<p>单价:3.95</p>
<input id="min" name="" type="button" value="-" />
<input id="text_box" name="" type="text" value="4" />
<input id="add" name="" type="button" value="+" />
<p>总价:<label id="total"></label></p>
展开
 我来答
百度网友3c3af2d
2013-08-02 · TA获得超过292个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:169万
展开全部
这个时候就像前面大哥说的 不能用id来表示了 可以用class
还有你的这个结构是不规范的 id一个页面只能是唯一的
为了不同时改变 其他的购物车的数量 可以来找到相对的

这个结构:
<div>
<p>单价:3.95</p>
<input class="min" name="" type="button" value="-" />
<input class="text_box" name="" type="text" value="4" />
<inputclass="add" name="" type="button" value="+" />
<p>总价:<label class="total"></label></p>
</div>
<div>
<p>单价:3.95</p>
<input class="min" name="" type="button" value="-" />
<input class="text_box" name="" type="text" value="4" />
<input class="add" name="" type="button" value="+" />
<p>总价:<label class="total"></label></p>
</div>

把每个购物车用一个div包起来

js:
$(function(){
//var t = $("#text_box");
$(".add").click(function(){
var t= $(this).parent().find(".text_box"); //根据这个来找到它相对的元素 当然也可以直接 //$(this).prev(); 这个直接来找到
t.val(parseint(t.val()+1);
setTotal($(this),t.val());
})
$(".min").click(function(){
var t= $(this).parent().find(".text_box"); //根据这个来找到它相对的元素 当然也可以直接 //$(this).next(); 这个直接来找到
t.val(parseint(t.val()-1);
setTotal($(this),t.val());
})
function setTotal(obj,number){
var total=number*$(obj).parent().find("p:first").text(); //这里算出总价
$(obj)).parent().find("total").html(total.toFixed(2));
}
// setTotal();
})

给一个建议 以后要想做好东西 布局一定要好

一个好的结构 才能让你任意操作
莫智蒋动漫推荐
2013-08-02 · TA获得超过171个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:83.1万
展开全部
楼主要知道id这个属性的值是唯一的。每个元素的id值不应该重复。所以应该把id改为class。
比如将id="text_box"改成class="text_box",jquery选择器也改改:$(".text_box")。还有其他比如说add这些也得改一改。
追问
那这样的话,就同时都改变了呀,我点第一个购物车增加数量,下面几个购物车也同时增加,请问这怎么改
追答
$(".min").click(function(){        
 $(this).sibling(".text_box").val(parseInt($(this).sibling(".text_box").val())-1);//获取class=text_box的兄弟节点。
   });


add也用同样的方法。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tatooo
2013-08-02 · TA获得超过2119个赞
知道小有建树答主
回答量:2497
采纳率:46%
帮助的人:675万
展开全部
$("#add").click(function(){ //凡是带click的

都改成
$("#add").live("click",function(){})
用live

click只对页面打开时生成的元素有效,操作后由程序后生成的无效
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式