2011-04-19 87 views
1

特殊字符我使用get元素的类函数$(".classname")但在类名中有空格,加号它不工作,在它斜线(我不能更改类名称)我如何逃脱的jQuery

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; 

上面的函数是我正在使用的。似乎所有的行吟诗人的类名,但不是那些与像between'level空间”和‘5’

我怎能逃脱的空间,plsu标志工作,斜线?

+1

我敢肯定,这些字符不是在类名允许 - 见http://stackoverflow.com/questions/448981/what-c​​haracters-are-valid-in-css-class-names – fin1te 2011-04-19 13:58:47

回答

4

类名不能有空格;如果html元素具有这样的类属性:

<p class="foo bar"> 

这意味着它有两个类(foo和bar)。你可以在jQuery中选择上述元素做

$(".foo.bar") 
+0

+1 [文档显示](http://www.w3.org/ TR/html401/struct/global.html#h-7.5.2):“多个类名称必须用空格字符分隔”。 – lonesomeday 2011-04-19 14:01:12

1

对于类名来说,它没有任何意义。当“class”属性有多个由空格分隔的单词时,这意味着该元素具有多个单独的类值。你找到这些的方式是将两个单独的“并列”并置。表达式:

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

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

至于其他的“特”字,jQuery将兑现“\”作为转义字符:

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

该问题分为两组:空白和其他。对于其他人,例如括号,它很简单:用反斜杠\转义它们,就完成了。

由于类的定义,空间更加棘手:它们是空白分隔标记的列表。这意味着,您无法保证,任何浏览器都会保留单个类定义的顺序。

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

.LEVEL.5 

注意,该空间现在是由一个点所取代。但是,例如,您可以不将此解决方案应用于连续的更多空间或决定空间和制表符。

0

看看验证插件。

不管你做什么,在服务器端验证用户名了。

这里是为了去除特殊字符(如!,>,?,。,#等代码)从使用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>