Javascript 删除“;逗号;最后一个元素后的分隔符
我有下面的代码Javascript 删除“;逗号;最后一个元素后的分隔符,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我有下面的代码 $(document).ready(function(){ $('input[type="checkbox"]').click(function(){ elem = $(this); part = $(this).attr("data-part-name"); //alert(part); selected_options = ""; $('.' + part).each(function () {
$(document).ready(function(){
$('input[type="checkbox"]').click(function(){
elem = $(this);
part = $(this).attr("data-part-name");
//alert(part);
selected_options = "";
$('.' + part).each(function () {
if ($(this).is(":checked")) {
selected_options += $(this).attr("data-option-name") + ' <b>,</b> '
}
});
$("#part_child_" + elem.attr("data-part-id")).html(selected_options);
});
});
$(文档).ready(函数(){
$('input[type=“checkbox”]”)。单击(函数(){
elem=$(本);
零件=$(this.attr(“数据零件名称”);
//警报(部分);
选定的_选项=”;
$('..+部分)。每个(函数(){
如果($(this).is(“:checked”)){
选定的_options+=$(this).attr(“数据选项名称”)+,'
}
});
$(“#part#u child#”+elem.attr(“数据部分id”)).html(选定的#选项);
});
});
如果您看到我正在为所选选项添加“逗号”。
现在的问题是,即使在最后一个元素之后,它也会添加逗号
如何删除最后一个逗号将非常适合此操作。还可以使用和筛选选中的项目
$(文档).ready(函数(){
$('input[type=“checkbox”]”)。单击(函数(){
var elem=$(本);
var part=$(this.attr(“数据部分名称”);
//警报(部分);
var selected_options=$('.'+part).filter(':checked').map(函数(){
返回“”+$(this).attr(“数据选项名称”)+“”
}).get();
$(“#part#u child#”+elem.attr(“数据部分id”)).html(选中的#options.join(',');
});
});
您可以使用迭代索引与parts元素的长度进行比较,并决定是否需要添加逗号。将代码修改为:
var totalparts=$('.' + part).length;
$('.' + part).each(function (i) {
if ($(this).is(":checked")) {
selected_options += $(this).attr("data-option-name") + totalparts!=(i+1) ?' <b>,</b> ':'';
}});
var totalparts=$('..+part).length;
$('..+部分)。每个(功能(i){
如果($(this).is(“:checked”)){
选定的_options+=$(this).attr(“数据选项名称”)+totalparts!=(i+1)?,':';
}});
更换该行
$("#part_child_" + elem.attr("data-part-id")).html(selected_options.replace(/[\<\>\,b\/\s]+$/,''));
$(“\part\u child”+elem.attr(“数据部分id”)).html(选中的\u选项.replace(/[\\,b\/\s]+$/,”);
只需从字符串中删除最后一个,
子字符串
if(selected_options.length > 0){
selected_options = selected_options.slice(0,-1)
}
$("#part_child_" + elem.attr("data-part-id")).html(selected_options);
不要进行字符串连接。将所有内容放在一个数组中,并使用
join
。请参阅Arun p Johny的答案。是的。。行得通。。感谢您在“,”之前或之后使用空格。试试这个经过编辑的答案。是的,很有效。谢谢不过我会同意阿伦的回答。。这种模式匹配不太好。。
if(selected_options.length > 0){
selected_options = selected_options.slice(0,-1)
}
$("#part_child_" + elem.attr("data-part-id")).html(selected_options);