使用jQuery获取表格TR标签ID并拼接为竖线分隔字符串时结果异常求解
问题根因
你代码里的字符串拼接运算符用错了,JavaScript 中字符串拼接应该用 +,而不是 &。& 在 JavaScript 中是按位与运算符,运算时会把两侧的操作数强制转为数字再做位运算:
- 字符串
"|"转数字结果为NaN - 任意ID字符串(如
ID-2)转数字结果也为NaN NaN & NaN的运算结果是0
所以第二次、第三次循环都会往结果后拼接0,最终就得到了ID-100。
修正后的代码
var files = ""; $('#list_files tr').each(function() { if (files == "") { files = files.concat($(this).attr("id")); } else { // 把&替换为+即可 files = files.concat("|" + $(this).attr("id")); } }) console.log(files);
更简洁的实现方式
可以直接用 jQuery 的 map 方法提取所有ID,再用 join 拼接分隔符,不用手动判断空值:
const files = $('#list_files tr').map(function() { return $(this).attr('id'); }).get().join('|'); console.log(files);
内容的提问来源于stack exchange,提问作者Amok Khan
相关产品推荐
相关产品推荐

