Tengo un problema al devolver una cadena en la que el valor "queso" se reemplaza por "mermelada". Mi escenario comienza primero con los valores predeterminados de queso y champiñones que se seleccionarán. Si quiero seleccionar queso, tomates, champiñones, registro de la consola, necesito que el valor "queso" se reemplace con "mermelada", y el resultado del registro de la consola debe ser "mermelada, tomates, champiñones". Cuando hice clic en el botón de verificación de valor, el mensaje de error me muestra que str.replace is not a function en el registro de la consola.
A continuación se muestra mi codificación de muestra:
$('#select_multiple').multiselect() var data="cheese,mushrooms"; var dataarray=data.split(","); $("#select_multiple").val(dataarray); $("#select_multiple").multiselect("refresh"); function check_value(){ var str = $('#select_multiple').val(); var abc = str.replace("cheese", "jam"); console.log(abc); } <!DOCTYPE html> <html> <head> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css" /> </head> <body> <select id="select_multiple" multiple="multiple"> <option value="cheese">Cheese</option> <option value="tomatoes">Tomatoes</option> <option value="mozarella">Mozzarella</option> <option value="mushrooms">Mushrooms</option> <option value="pepperoni">Pepperoni</option> <option value="onions">Onions</option> </select> <button onclick="check_value();">Check Value</button> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/js/bootstrap-multiselect.min.js"></script> </body> </html> Intenté alertar a la variable str para verificar los valores, obtuvo valores. Simplemente no puede consolar registrar los valores. Espero que alguien pueda orientarme sobre cómo solucionar este problema. Gracias.
Eso es porque está obteniendo str como una matriz. Debe usar for loop para reemplazar la cadena que desea. ver ejemplo a continuación
$('#select_multiple').multiselect() var data="cheese,mushrooms"; var dataarray=data.split(","); $("#select_multiple").val(dataarray); $("#select_multiple").multiselect("refresh"); function check_value(){ var str = $('#select_multiple').val(); for(var i=0; i < str.length; i++) { str[i] = str[i].replace('cheese', 'jam'); } console.log(str) } <!DOCTYPE html> <html> <head> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css" /> </head> <body> <select id="select_multiple" multiple="multiple"> <option value="cheese">Cheese</option> <option value="tomatoes">Tomatoes</option> <option value="mozarella">Mozzarella</option> <option value="mushrooms">Mushrooms</option> <option value="pepperoni">Pepperoni</option> <option value="onions">Onions</option> </select> <button onclick="check_value();">Check Value</button> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/js/bootstrap-multiselect.min.js"></script> </body> </html>eso es porque str es una matriz. es por eso que todavía tienes que iterar la variable...
$('#select_multiple').multiselect() var data="cheese,mushrooms"; var dataarray=data.split(","); $("#select_multiple").val(dataarray); $("#select_multiple").multiselect("refresh"); function check_value(){ var str = $('#select_multiple').val(); const abc = [] str.forEach((s) => { abc.push(s.replace("cheese", "jam")); }) console.log(abc); } <!DOCTYPE html> <html> <head> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css" /> </head> <body> <select id="select_multiple" multiple="multiple"> <option value="cheese">Cheese</option> <option value="tomatoes">Tomatoes</option> <option value="mozarella">Mozzarella</option> <option value="mushrooms">Mushrooms</option> <option value="pepperoni">Pepperoni</option> <option value="onions">Onions</option> </select> <button onclick="check_value();">Check Value</button> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/js/bootstrap-multiselect.min.js"></script> </body> </html>