如何将选中的label值分别插入对应class为rowSvar的p标签?
解决选中标签文本对应插入到指定元素的问题
你的问题出在循环时每次都对所有.rowSvar元素执行追加操作,导致每个元素都被插入了所有选中的标签文本。要实现一一对应,只需要通过索引将选中的文本和目标元素匹配即可。
修改后的代码
// 获取所有选中的标签文本,这部分逻辑没问题 var labels = $('#from :checked').map(function() { return $(this).closest('label').text(); }).get(); // 获取所有需要插入内容的目标元素集合 var targetElements = $('.rowSvar'); // 遍历选中的文本,通过索引对应到目标元素 labels.forEach(function(text, index) { // 避免选中数量和目标元素数量不匹配时出现错误 if (targetElements[index]) { // 用text()会覆盖原有内容,用append()则是在原有内容后追加,按需选择 $(targetElements[index]).text(text); } });
逻辑说明
- 先获取所有选中的标签文本数组,以及所有
.rowSvar元素的集合 - 遍历文本数组时,利用
forEach的第二个参数index(当前元素的索引),将第index个文本插入到第index个.rowSvar元素中 - 增加判断条件,防止选中数量和目标元素数量不一致时触发错误
内容的提问来源于stack exchange,提问作者Jack the man
相关产品推荐
相关产品推荐

