如何去除JS变量con_str拼接push值join后出现的多余空白字符
多余空格处理方案
问题根因
- 从
<a>标签取到的文本本身自带前后空格,你仅对最终拼接后的字符串做trim()只能清除整串首尾的空格,无法处理每个值前后、逗号两侧的中间空格 next("")选择器未指定目标元素,存在取错节点的隐患
修复代码
直接在取值阶段就清理每个文本的前后空格,从根源避免空格进入拼接环节,修改后的JS逻辑如下:
function fnTest(check) { $(check).is(':checked') } function submit() { var values = []; $("input[type=checkbox]:checked").each(function(){ // 明确取相邻的.ref元素文本,同时移除前后空格 values.push($(this).next(".ref").text().trim()); }); var con_str = "https://www.url-abc.com/" + values.join(','); window.open(con_str); }
备选快速方案
如果不想修改取值逻辑,也可以在拼接完成后用全局正则替换所有空格:
var con_str = "https://www.url-abc.com/"+values.join(); con_str = con_str.replace(/\s+/g, ''); // 替换所有空白字符 window.open(con_str);
内容的提问来源于stack exchange,提问作者Izzat Z.
相关产品推荐
相关产品推荐

