【问题标题】:add escape characters to jquery variable on the fly即时将转义字符添加到 jquery 变量
【发布时间】:2013-10-17 06:31:06
【问题描述】:

有没有办法自动转义 jQuery 变量中的字符? 我的变量如下所示:

var $name = $(this).prev().attr('name');

现在事情变得很棘手,因为这个名字有方括号。所以当我尝试这样做时:

$('input:radio[name='+$name+']').next().addClass('so_pretty');

javascript 会抛出一个合适的结果,因为它会从所有括号中混淆。

是否要即时添加那些转义斜线?

谢谢, 狮子座

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    用引号括起来,这样就不会发生元字符问题,因为[] 是 jquery 选择器的metachars

    $('input:radio[name="'+$name+'"]').next().addClass('so_pretty');
                        ^__       ^___
    

    【讨论】:

    • 如果名称中包含" 会怎样?这适用于提出的问题,但不是保护真正任意属性过滤器的通用解决方案。
    • @user2864740 以一般方式,您可以使用正则表达式替换为它们添加双斜杠前缀。不仅适用于所有元字符的"
    • 似乎应该有一些现有的功能适合这个:>
    • @user2864740 有很多你可以查找的答案。这是一个.. stackoverflow.com/questions/2786538/…
    • @user2864740 - 这是任意属性过滤器的通用解决方案,因为属性标记中不允许使用双引号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2017-04-03
    相关资源
    最近更新 更多