我正在使用类函数$(".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标志,正斜线?
答案 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 \\
:)