在元素属性中设置时如何正确转义特殊字符

时间:2013-07-18 05:45:31

标签: jquery attributes

我从后端获取值并创建一组复选框,其中一个值没有正确设置我的复选框..

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

但是在输出中我得到的结果如下:

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

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

这是我的尝试:

$.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,以及任何其他特殊字符,如

$, &,%

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

1 个答案:

答案 0 :(得分:1)

使用$(element).attr(attrName, value)修改属性,使用$(element).text(value)修改文字内容。

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