如何给多个按钮设置和获取ID

本文介绍如何使用tmpl模板动态生成带有唯一ID的商品按钮,并实现点击按钮将商品信息加入购物车的功能。通过jQuery操作DOM元素,绑定点击事件,利用本地存储管理购物车数据。

        我用tmpl模板动态生成商品列表,其中用一列添加按钮模板动态生成很多“加入购物车”按钮,当点击该按钮商品会加入购物车,这就需要给这些按钮添加ID,通过ID找到相应的商品信息加入到购物车,具体内容如下:

//以下是写在html <head>标签中的tmpl模板:
<script  type="text/x-jquery-tmpl"  id="trPemp">
     <tr>
         <td >${classification}</td>
         <td >${name}</td>
         <td >${price}</td>
         <td >${unit}</td>
         <td ><button   id=${id}  >加入购物车</button></td> //生成按钮模板
     </tr>
</script>

 

   

// 给多个按钮添加ID  
var cartList = [
    {classification: "饮料",name: "可口可乐", price: "3", unit: "瓶" ,id:"1"},
    {classification: "饮料",name: "雪碧", price : "3",   unit: "瓶",id:"2"},
    {classification: "水果", name: "苹果", price : "5.5", unit: "斤",id:"3"},
    {classification: "水果", name: "荔枝",  price: "15",   unit: "斤",id:"4"},
    {classification: "生活用品",name: "电池", price : "2", unit: "个",id:"5"},
    {classification: "食品", name: "方便面",  price: "4.5", unit: "袋",id:"6"}
]
//通过tmpl方法在id为tableLis的表格中生成的5个按钮,有了不同的ID
 $("#trPemp").tmpl(cartList).appendTo('#tableList');

 

 

//给这些按钮添加点击事件,当点击某商品的“加入购物车”按钮时通过获取该按钮的ID就可以找到该商品的信息并将其添加到从本地取出的数组中然后再存回到本地,以供购物车页面获取它
function addClickEvent(){
    var data=JSON.parse(localStorage.getItem("data"))||[];
    $("button").click( function(){
    data.push(cartList [ this.id ] );    //this.id  为获取点击按钮的ID       
     localStorage.setItem("data",JSON.stringify(data));
      })
 }
 

 

 

 

 

 

### 回答1: 不可以。每个Qt的QWidget会有一个独立的ID,以便从代码中唯一标识它。因此,qbuttongroup不能设置多个相同的ID。如果多个qbuttongroup需要共享相同的ID,您需要自己手动将其维护在应用程序中。 ### 回答2: 在Qt中,qbuttongroup可以多个设置同一ID。QButtonGroup类是用于管理一组按钮的类,通常用于按钮的互斥选择。每个按钮都可以设置一个唯一的ID,用于标识该按钮。而一个QButtonGroup对象可以管理多个按钮,这些按钮可以设置相同的ID。 当一个按钮被选中时,可以通过QButtonGroup的checkedId()方法获取到该按钮ID。如果存在多个按钮设置了相同的ID,当这些按钮中的一个按钮被选中时,checkedId()方法会返回其中一个按钮ID,而无法精确地确定是哪个按钮被选中。因此,如果需要精确地确定是哪个按钮被选中,建议不要将多个按钮设置相同的ID。 总结来说,虽然可以将多个按钮设置相同的ID,但这样会导致在获取选中按钮ID时不确定性。因此,为了保证程序逻辑的正确性,建议不要多个按钮设置相同的ID。 ### 回答3: 在QButtonGroup中,每个按钮都会有一个唯一的ID,即按钮ID属性。这个ID属性可以用来区分不同的按钮。按照Qt的设计原则,同一个QButtonGroup中的按钮不应该有相同的ID。 在QButtonGroup中,可以通过调用.addButton()方法来添加按钮,并为每个按钮设置一个唯一的ID。这个ID一个整数类型的值,可以用来标识按钮。如果多个按钮设置了相同的ID,那么只有一个按钮会被保留,其他的按钮将会被忽略。 由于QButtonGroup的设计初衷是用来管理一组排他性按钮的,如果多个按钮具有相同的ID,可能会导致一些问题。比如,通过QButtonGroup获取按钮时,可能无法准确地获取到想要的按钮,或者在处理按钮事件时发生错误。 因此,为了确保程序的正确性可靠性,不建议在同一个QButtonGroup中设置多个具有相同ID按钮。如果需要多个按钮具有相同的功能或属性,可以考虑使用其他的方式来实现,比如添加相同的槽函数或使用其他自定义属性来标识按钮。这样可以保证程序的健壮性可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值