如何在jquery中转义特殊字符

How do I escape special characters in jquery

本文关键字:转义 特殊字符 jquery      更新时间:2023-09-26

我通过类函数$(".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'之间有空格的类名

如何转义空格,正号,斜杠?

类名不能有空格;如果一个HTML元素有这样的class属性:

<p class="foo bar">

意味着它有两个类(foo和bar)。您可以在jQuery中通过

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

类名中有空格没有任何意义。当一个"class"属性有多个用空格分隔的单词时,这意味着该元素有多个分隔的类值。找到它们的方法是将两个独立的"."表达式并置:

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

类名之间不加空格,类名前加"。"

对于其他"特殊"字符,jQuery将"'"作为转义字符:

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

问题分为两类:空白和其他。对于其他的,比如括号,它是直接的:用反斜杠'转义它们,然后你就完成了。

由于类的定义,空格变得更加棘手:它们是由空格分隔的令牌组成的列表。这意味着,你不能保证,任何浏览器将保持顺序,其中单个类的定义。

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

.LEVEL.5

注意,空格现在被一个点代替了。但是,您不能将此解决方案应用于一行中更多的空格,也不能在空格和制表符之间做出选择,例如

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

看一下验证插件。

无论如何,也要在服务器端验证用户名。

下面是使用JavaScript从字符串中删除特殊字符(如!,>,?,.,#等)的代码:

<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>

特殊字符如+可以用作类名,

必须在CSS

中用单反斜杠转义

see How to escape any character in CSS;

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

已经测试过了,它可以很好地用于CSS但在jQuery中使用DOUBLE ''

:)