如何删除 JS var 中的空格?
How to remove empty spaces in JS var?
如何在加入推送值后删除var con_str中的空space?
HTML
<input type="checkbox" id="chckBox1" onchange="fnTest(this);" /> <a class="ref"> Banana </a>
<input type="checkbox" id="chckBox2" onchange="fnTest(this);" /> <a class="ref"> Apple </a>
<input type="checkbox" id="chckBox3" onchange="fnTest(this);" /> <a class="ref"> Orange </a>
<input type="button" id="testABC" onclick="submit()" value="OK" />
JS
function fnTest(check)
{
$(check).is(':checked')
}
function submit()
{
var values = [];
$("input[type=checkbox]:checked").each(function(){
values.push($(this).next("").text());
});
var con_str = "https://www.url-abc.com/"+values.join();
window.open(con_str.trim());
}
如果我 select 所有三个复选框,这就是我现在的输出。
https://www.url-abc.com/%20Banana%20,%20Apple%20,%20Orange
我想要的输出
https://www.url-abc.com/Banana,Apple,Orange
我尝试添加 con_str.trim()。但是没用。
您的 <a>
内容的末尾有空格。 Trim 他们。
$("input[type=checkbox]:checked").each(function(){
values.push($(this).next("").text().trim());
});
更优雅的方法,使用.map
代替.push
:
const values = [...$("input[type=checkbox]:checked")]
.map(input => input.nextElementSibling.textContent.trim());
您可以使用 map()
、get()
和 join()
来获取逗号分隔的字符串,如下所示:
var values = $("input[type=checkbox]:checked").map(function(){
return $(this).next("").text().trim();
}).get().join(',');
演示:
function fnTest(check)
{
$(check).is(':checked')
}
function submit()
{
var values = $("input[type=checkbox]:checked").map(function(){
return $(this).next("").text().trim();
}).get().join(',');
var con_str = "https://www.url-abc.com/"+values;
console.log(con_str)
//window.open(con_str.trim());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="chckBox1" onchange="fnTest(this);" /> <a class="ref"> Banana </a>
<input type="checkbox" id="chckBox2" onchange="fnTest(this);" /> <a class="ref"> Apple </a>
<input type="checkbox" id="chckBox3" onchange="fnTest(this);" /> <a class="ref"> Orange </a>
<input type="button" id="testABC" onclick="submit()" value="OK" />
如何在加入推送值后删除var con_str中的空space?
HTML
<input type="checkbox" id="chckBox1" onchange="fnTest(this);" /> <a class="ref"> Banana </a>
<input type="checkbox" id="chckBox2" onchange="fnTest(this);" /> <a class="ref"> Apple </a>
<input type="checkbox" id="chckBox3" onchange="fnTest(this);" /> <a class="ref"> Orange </a>
<input type="button" id="testABC" onclick="submit()" value="OK" />
JS
function fnTest(check)
{
$(check).is(':checked')
}
function submit()
{
var values = [];
$("input[type=checkbox]:checked").each(function(){
values.push($(this).next("").text());
});
var con_str = "https://www.url-abc.com/"+values.join();
window.open(con_str.trim());
}
如果我 select 所有三个复选框,这就是我现在的输出。
https://www.url-abc.com/%20Banana%20,%20Apple%20,%20Orange
我想要的输出
https://www.url-abc.com/Banana,Apple,Orange
我尝试添加 con_str.trim()。但是没用。
您的 <a>
内容的末尾有空格。 Trim 他们。
$("input[type=checkbox]:checked").each(function(){
values.push($(this).next("").text().trim());
});
更优雅的方法,使用.map
代替.push
:
const values = [...$("input[type=checkbox]:checked")]
.map(input => input.nextElementSibling.textContent.trim());
您可以使用 map()
、get()
和 join()
来获取逗号分隔的字符串,如下所示:
var values = $("input[type=checkbox]:checked").map(function(){
return $(this).next("").text().trim();
}).get().join(',');
演示:
function fnTest(check)
{
$(check).is(':checked')
}
function submit()
{
var values = $("input[type=checkbox]:checked").map(function(){
return $(this).next("").text().trim();
}).get().join(',');
var con_str = "https://www.url-abc.com/"+values;
console.log(con_str)
//window.open(con_str.trim());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="chckBox1" onchange="fnTest(this);" /> <a class="ref"> Banana </a>
<input type="checkbox" id="chckBox2" onchange="fnTest(this);" /> <a class="ref"> Apple </a>
<input type="checkbox" id="chckBox3" onchange="fnTest(this);" /> <a class="ref"> Orange </a>
<input type="button" id="testABC" onclick="submit()" value="OK" />