使用追加时删除引号或包含引号

时间:2014-02-27 19:23:50

标签: javascript jquery html quotations

我有一个变量PRODUCT_CUSTOM_1_和PRODUCT_NAME_。这是为了从正在显示的html中获取产品选项。我们有一些包含引号的产品,“和'。当我们抓住这些字符串并将它们发布到其他地方时,它会切断”。我或者需要“删除或包含在我们内部的其他地方。”

如何删除或包含两个变量中的“和”到我的隐藏形式iwantCheckoutForm?

产品名称的示例:1/8“x 40'卷胶带 自定义选项的示例:1/8“黑色,1/4”红色

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+'"> ');
}
}}

我知道这是一个重复的问题,但我无法弄清楚如何在我当前的脚本中实现10多个建议。我似乎无法包含正则表达式参数,没有破坏脚本。我试图在for循环中添加它。

        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, ""));
        }

归咎于我仍然是一个n00b,并责怪我的ADD。我想我只是不知道我需要在哪里添加.replace(/ \“/ g,”“),因为这段代码似乎适用于其他人。

2 个答案:

答案 0 :(得分:1)

不是为元素创建HTML代码,只需创建元素并设置值即可。这消除了逃避字符的所有问题:

$("#iwantCheckoutForm").append(
  $('<input>', { type: 'hidden', name: 'PRODUCT_NAME_'+(i+1) }).val(items[i])
);

答案 1 :(得分:1)

使用功能

function makeInput(name,value) {
 var tmp = $('<input type="hidden" />');
 tmp.attr('name', name);
 tmp.val(value);
 return tmp;
}

示例:http://jsfiddle.net/5EX3y/2/