Javascript Onchange从字符串中删除值

Javascript Onchange从字符串中删除值,javascript,jquery,Javascript,Jquery,我只想在变量中添加一次选定值(而不是o1-o2)作为字符串,一旦更改,删除旧值+将新选定值添加到字符串中 $(“#hotelVel”)。关于(“更改”,函数(){ let size=$(“#hotelVel:selected”).val(); kod=kod+尺寸; }); 单人房(10平方米) 双人房(15平方米) 您可以在加入之前清空变量 让kod='z5'; $(“#hotelVel”)。关于(“更改”,函数(){ 让大小=“”; //kod=kod+尺寸; 大小=$(“#hotel

我只想在变量中添加一次选定值(而不是o1-o2)作为字符串,一旦更改,删除旧值+将新选定值添加到字符串中

$(“#hotelVel”)。关于(“更改”,函数(){
let size=$(“#hotelVel:selected”).val();
kod=kod+尺寸;
});

单人房(10平方米)
双人房(15平方米)

您可以在加入之前清空变量

让kod='z5';
$(“#hotelVel”)。关于(“更改”,函数(){
让大小=“”;
//kod=kod+尺寸;
大小=$(“#hotelVel:selected”).val()
kod=kod.分割('-')[0]+大小;
控制台日志(kod);
});

单人房(10平方米)
双人房(15平方米)
双人房(20平方米)
双人房(25平方米)

在函数调用时将kod设为空。使用子字符串删除每次调用的额外值

var kod='string'
$(“#hotelVel”)。关于(“更改”,函数(){
let size=$(“#hotelVel:selected”).val()
var-aux=kod;
kod=辅助设备+尺寸;
控制台日志(kod)
kod=aux;
})

单人房(10平方米)
双人房(15平方米)
首先,您可以将$(“#hotelVel:selected”).val()简化为$(“#hotelVel”).val()。 我想kod包含房间的所有选项,对吗?在本例中,我只想看看字符串中是否已经存在另一个选项:

$("#hotelVel").on("change", function() {
let size = $("#hotelVel").val();
let roomOptionsArr = kod.split("-");
let options = $(this).find("option").val();
let check = "";
for(let i = 0; i < roomOptionsArr.length; i++){
    if(options.includes("-" + roomOptionsArr[i])){
        check = "-" + roomOptionsArr[i];
        break;
    }
}
kod = kod.replace(check, "");
kod += size; // I simplified kod = kod + size by using += that appends automatically
});
$(“#hotelVel”)。关于(“更改”,函数(){
设size=$(“#hotelVel”).val();
let roomOptionsArr=kod.split(“-”);
让options=$(this.find(“option”).val();
让我们检查一下“”;
for(设i=0;i
希望这对您有所帮助

$('#hotelVel')。更改(函数(){
让kod='这是我的字符串:';
kod=kod+$(this.val();
控制台日志(kod);
});

单人房(10平方米)
双人房(15平方米)

您可以使用临时变量存储所选值,并在更新
kod时进行比较,如下所示

让kod='My string';
让hotelValue='';
$(“#hotelVel”)。关于(“更改”,函数(){
if(hotelValue!=''&&kod.includes(hotelValue)){
kod=kod.replace(hotelValue,”);
}
hotelValue=$(“#hotelVel:selected”).val();
kod=kod+酒店价值;
控制台日志(kod);
});

单人房(10平方米)
双人房(15平方米)
仅针对目标
中提取值时,只需应用JavaScript属性
。值

将jQuery方法
.val()
直接发送到
,无需乱动
s:


演示
$(“#hotelVel”)。关于(“更改”,函数(){
让size=$(this.val();
设kod='z5'+大小;
控制台日志(kod);
});

单人房(10平方米)
双人房(15平方米)

我必须让kod停止运行。我在“kod”中有一个不能删除的字符串。“我的字符串”是“z5”,如果用户选择-o1,我想输入kod=“z5-o1”,如果用户选择-o2,则输入“z5-o2”。。(…-o6)查看Desired result.z5的代码段。z5在全局变量“kod”中,我无法删除它的内容。这应该可以工作,但它会累加起来。(-o1-o2)如果用户选择o2,我想删除“o1”。如果我有-o1,-o2…-o6怎么办?好的,你有两个以上的房间尺寸,我会编辑我的answer@Zyonix我现在要做的是首先用-从roomstring中获取所有选项,然后检查它们是否出现在您选择的选项值中。如果是,则该字符串保存在check中,然后从kod字符串中删除“-”+check。并添加您的原始尺寸。这应该可以解决问题(如果没有语法错误;))我需要将kod保留为未执行,然后将更多字符串添加到kod变量中。什么是:
kod
?变量将值存储为字符串。在上一页中,它在变量中添加了“z5”。现在我想向它添加-o1或-o2(…-o6),但我的函数将它们相加为“z5-o1-o2”,而不是“z5-o2”或“z5-o1”,这很奇怪。您的代码按照我的要求工作,但如果我将其复制到项目中,则不会。您的项目是否加载了jQuery?它是如此的基本以至于它失败的唯一方式是如果没有加载jQuery或者选择器上存在不匹配的情况……除了……IDK是的,在页面底部。Kod是将值存储为字符串的全局变量。在上一页中,它添加了“z5”或“z6”。所以我把“let kod='z5'+size;”改为kod+=size;问题依然存在。它不是z5-o1,而是(z5-o1-o2…)确保在“选择”选项中没有嵌套的元素,同时检查是否有任何选项嵌套在其中。将
$('hotelVel')
更改为
$('select')
 let size = document.querySelector('#hotelVel').value
  let size = $(this).val();