如何在jquery中转义特殊字符

时间:2011-04-19 13:57:04

标签: javascript jquery

我正在使用类函数$(".classname")的get元素,但是当类名有空格,加号,斜线时它不起作用(我无法更改类名)

var summaryLEVEL5 = $(".LEVEL 5");
    var summaryLEVEL5Total = 0;
    for (i=0; i < summaryLEVEL5.length; i++){
        summaryLEVEL5Total = summaryLEVEL5Total + parseInt(summaryLEVEL5[i].innerHTML);
    }

    var columnLEVEL5CapGroup = $(".LEVEL 5CapGroup");
    columnLEVEL5CapGroup[columnLEVEL5CapGroup.length - 1].innerHTML = summaryLEVEL5Total;

上面的功能是我正在使用的。它似乎适用于所有其他类名,但不适用于像'level'和'5'之间的空间

我怎样才能逃避空间,plsu标志,正斜线?

6 个答案:

答案 0 :(得分:4)

班级名称不能有空格;如果一个html元素有一个类属性:

<p class="foo bar">

这意味着它有两个类(foo和bar)。你可以通过

在jQuery中选择上面的元素
$(".foo.bar")

答案 1 :(得分:1)

类名在其中有空格没有任何意义。当“class”属性具有由空格分隔的多个单词时,表示该元素具有多个单独的类值。你找到这些的方式是并列两个单独的“。”表达式:

var whatever = $('.LEVEL.5CapGroup');

它们之间没有空格,而且“。”在每个班级名称之前。

对于其他“特殊”字符,jQuery会将“\”视为转义字符:

var whatever = $('.className\.WithDot');

答案 2 :(得分:1)

问题分为两组:空白和其他组。对于其他人,如括号,它是直截了当的:用反斜杠\来逃避它们,你已经完成了。

由于类的定义,空间比较棘手:它们是白色空格分隔标记的列表。这意味着,您无法保证任何浏览器都会保留订单,其中定义了单个类。

幸运的是,您可以像这样查询每个“空格分隔”的类:

.LEVEL.5

请注意,该空格现在被点替换。但是,您可以不将此解决方案应用于连续的更多空间,或者在空格和制表符之间进行决定,例如。

答案 3 :(得分:0)

CSS类名中不能有空格,这会导致后代选择器:http://api.jquery.com/descendant-selector/(CSS规范:http://www.w3.org/TR/CSS2/selector.html#descendant-selectors

答案 4 :(得分:0)

查看验证插件。

无论你做什么,也要在服务器端验证用户名。

以下是使用JavaScript从字符串中删除特殊字符(如!,&gt;,?,。,#etc.等)的代码:

<script language="JavaScript">
<!-- var temp = new String('This is a te!!!!st st>ring... So??? What...'); document.write(temp + '<br>'); temp =  temp.replace(/[^a-zA-Z 0-9]+/g,''); document.write(temp + '<br>'); //-->
</script>

答案 5 :(得分:0)

+这样的特殊字符可以用作类名,

它们必须在CSS

中的单个反斜杠中进行转义

请参阅How to escape any character in CSS;

http://mathiasbynens.be/notes/css-escapes

经过测试,它适用于CSS 但是在jQuery中你使用DOUBLE \\

:)