Vue在tr,td表格中获得多选框(checkbox)选中哪一行的文本内容

需求:我想获得选中状态下下面那一行的文本内容(也就是这一整行信息的id)

<tr id="father" v-for="question in questions">
  <td scope="row"><input type="checkbox" ></td>
  <td v-text="question.id">1</td>
//后面省略
</tr>

 也就是获得选中状态后面的编号值

 实现:在网上找了很多方法但始终不能实现(jq,js代码不熟..),最后换了个思路终于获得了想要的值,希望对你有帮助

前端部分

<tr id="father" v-for="question in questions">
//为多选框添加class属性 并且用Vue动态添加id属性(其实也就是将后面的文本放到了前面,我们就是要获得这个ID属性的值)
  <td scope="row"><input type="checkbox" class="son" v-bind:id="question.id"></td>
  <td v-text="question.id">1</td>
//后面省略
</tr>

vue部分

 

let checkDom=document.getElementsByClassName("son")//使用该方法获得所有的多选框节点元素数组
  let ids=[]   //声明一个放获得数据的数组
  console.log(checkDom.length)   //打桩测试
  for (let i = 0; i <checkDom.length; i++) {//循环checkDom数组
      if (checkDom[i].checked){      //checkDom[i].checked判断当前多选框是否被选中
         //测试.getAttribute("id")这个方法表示获得当前这个元素属性id的值
          console.log(checkDom[i].getAttribute("id"))
          ids.push(checkDom[i].getAttribute("id"))   //将获得的值放在数组中
      }
  }

 这样我们就可以获得我们想要的值了,可能不是最好的方法。但如果你有其他方法就评论讨论吧

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现弹窗多选表格保存选中的功能,同时保证每个弹窗事件是独立的,你可以按照以下步骤进行操作: 1. 在Vue组件,为每个弹窗定义一个独立的数据属性,用于保存当前弹窗表格选中项。例如,你可以为每个弹窗定义一个名为`selectedItems`的数组属性。 2. 在表格,使用`v-model`指令绑定每个行的选中状态到对应的`selectedItems`数组。例如,你可以使用`v-model="selectedItems"`将每个行的选中状态与`selectedItems`数组进行绑定。 3. 当用户在弹窗进行选择时,会自动更新绑定的`selectedItems`数组。 4. 当用户点击保存按钮时,将当前弹窗的`selectedItems`数组选中项保存到相应的数据属性,例如定义一个名为`savedItems`的数组属性,并将当前弹窗的`selectedItems`数组赋给`savedItems`数组。 5. 如果你需要在每个弹窗事件保持独立的数据,可以使用组件化的方式创建多个弹窗组件,并在每个组件实现上述逻辑。 下面是一个简单的示例代码: ```vue <template> <div> <!-- 弹窗1 --> <div v-if="showDialog1"> <table> <tr v-for="item in data1" :key="item.id"> <td> <input type="checkbox" v-model="selectedItems1" :value="item.id" /> </td> <td>{{ item.name }}</td> </tr> </table> <button @click="saveSelectedItems1">保存</button> </div> <!-- 弹窗2 --> <div v-if="showDialog2"> <table> <tr v-for="item in data2" :key="item.id"> <td> <input type="checkbox" v-model="selectedItems2" :value="item.id" /> </td> <td>{{ item.name }}</td> </tr> </table> <button @click="saveSelectedItems2">保存</button> </div> </div> </template> <script> export default { data() { return { showDialog1: false, showDialog2: false, data1: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' } ], data2: [ { id: 4, name: 'Item 4' }, { id: 5, name: 'Item 5' }, { id: 6, name: 'Item 6' } ], selectedItems1: [], selectedItems2: [], savedItems1: [], savedItems2: [] }; }, methods: { saveSelectedItems1() { this.savedItems1 = [...this.selectedItems1]; // 其他保存逻辑 }, saveSelectedItems2() { this.savedItems2 = [...this.selectedItems2]; // 其他保存逻辑 } } }; </script> ``` 在上述示例,我们为每个弹窗定义了独立的`selectedItems`数组和`savedItems`数组,以实现每个弹窗事件的独立性。你可以根据实际需求进行相应的修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值