Rimozione delle quotazioni o comprese le virgolette quando si utilizza APPEND
-
24-12-2019 - |
Domanda
Ho una variabile, prodotto_custom_1_ e product_name_. Questo suppone di prendere le opzioni del prodotto dall'HTML che viene visualizzato. Abbiamo alcuni prodotti che contengono quotazioni "e". Quando afferriamo queste stringhe e pubbliciamoli altrove, si interrompe al ". Ho bisogno del "rimosso o incluso dentro di noi postarlo altrove.
Come posso rimuovere o includere "e" dalle due variabili nella mia forma nascosta Iwantcheckoutform?
Un esempio di un nome del prodotto: 1/8 "x 40 'Rotolo di nastro Un esempio dell'opzione personalizzata: 1/8 "nero, 1/4" rosso
var BongoCheckout = {insertForm: function() {
var custom =new Array;
for(i=0;i< qtys.length ;i++){
custom[i]="";
for(j=0;j< $($("td.ys_itemInfo")[i]).children().children().length; j++){
custom[i]= custom[i]+" "+$($($("td.ys_itemInfo")[i]).children().children()[j]).text();
}
$("#iwantCheckoutForm").append('<input type="hidden" name="PRODUCT_ID_'+(i+1)+'" value="'+codes[i]+'">');
$("#iwantCheckoutForm").append('<input type="hidden" name="PRODUCT_NAME_'+(i+1)+'" value="'+items[i]+'">');
$("#iwantCheckoutForm").append('<input type="hidden" name="PRODUCT_PRICE_'+(i+1)+'" value="'+price[i]+'">');
$("#iwantCheckoutForm").append('<input type="hidden" name="PRODUCT_Q_'+(i+1)+'" value="'+qtys[i]+'">');
$("#iwantCheckoutForm").append('<input type="hidden" name="PRODUCT_CUSTOM_1_'+(i+1)+'" value="'+custom[i]+'" /> ');
if (per_item_shipping) {
$('form[name="iwantCheckoutForm"]').append('<input type="hidden" name="PRODUCT_SHIPPING_'+(i+1)+'" value="'+shipping_cost.toString()+'"> ');
} else {
$('form[name="iwantCheckoutForm"]').append('<input type="hidden" name="PRODUCT_SHIPPING_'+(i+1)+'" value="'+shipping_cost_breakdown+'"> ');
}
}}
.
So che questa è una domanda duplicata, ma non potevo capire come implementare i suggerimenti di 10+ nella mia scrittura attuale. Non riesco a includere l'argomento Regex, senza lo script da rompere. Ho provato ad aggiungerlo all'interno del loop per.
for(j=0;j< $($("td.ys_itemInfo")[i]).children().children().length; j++){
custom[i]= custom[i]+" "+$($($("td.ys_itemInfo")[i]).children().children()[j]).text(custom.replace(/\"/g, ""));
}
.
Biame che su di me ancora un N00B e incolpalo che sul mio add. Suppongo che io non so dove devo aggiungere .replace (/ \ "/ G," ") Come questo codice sembra funzionare per gli altri.
Soluzione
Invece di creare codice HTML per un elemento, basta creare l'elemento e impostare il valore.Che elimina tutti i problemi con i caratteri di scapping:
$("#iwantCheckoutForm").append(
$('<input>', { type: 'hidden', name: 'PRODUCT_NAME_'+(i+1) }).val(items[i])
);
. Altri suggerimenti
Utilizzare la funzione
function makeInput(name,value) {
var tmp = $('<input type="hidden" />');
tmp.attr('name', name);
tmp.val(value);
return tmp;
}
.
Esempio: http://jsfiddle.net/5ex3y/2/