2011-04-19 155 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>