0

我正在从后端获取值并制作一组复选框,其中一个值未使用我的复选框正确设置..

测试内容如下:“法语(科特迪瓦)”

但在输出中我得到这样的结果:

<label><input value="French (Cote d" ivoire)'="" type="checkbox">French (Cote d'Ivoire)</label>

我明白,“'” - 必须转义。为此我做了替换工作,但问题仍然没有解决,

这是我的尝试:

$.map(data["allLocales"], function(value, i){

                var name = value.name;
                    name.replace("'", "&quot;") even i tried name.replace("'", "\'") - no luck

                if(i % 5 === 0 ){
                    col0 += "<label><input value='"+ name +"' type='checkbox' />"+name+"</label>"
                }else if(i % 5 === 1){
                    col1 += "<label><input value='"+ name +"' type='checkbox' />"+name+"</label>"
                }else if(i % 5 === 2){
                    col2 += "<label><input value='"+ name +"' type='checkbox' />"+name+"</label>"
                }else if(i % 5 === 3){
                    col3 += "<label><input value='"+ name +"' type='checkbox' />"+name+"</label>"
                }else if(i % 5 === 4){
                    col4 += "<label><input value='"+ name +"' type='checkbox' />"+name+"</label>"
                }

            })

如何正确地转义“'” - 单个 cote,以及在任何其他特殊字符的情况下,如

$, &,%

如果我将来如何处理这种情况..?

4

1 回答 1

1

用于$(element).attr(attrName, value)修改属性和$(element).text(value)文本内容。

不要自己操作/连接 HTML,因为糟糕的代码很容易导致安全问题。

于 2013-07-18T05:47:53.083 回答