簡體   English   中英

如何在jQuery中轉義特殊字符

[英]How do I escape special characters in 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”之間帶有空格的類名

我怎樣才能逃脫空格,正斜線?

類名不能有空格; 如果html元素具有這樣的class屬性:

<p class="foo bar">

這意味着它具有兩個類(foo和bar)。 您可以通過執行以下操作在jQuery中選擇上述元素

$(".foo.bar")

類名在其中沒有空格是沒有意義的。 當“類別”屬性的多個單詞用空格分隔時,表示元素具有多個單獨的類別值。 找到這些的方法是將兩個單獨的“。”並置。 表達式:

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

它們之間沒有空格,並且帶有“。” 每個班級名稱之前。

至於其他“特殊”字符,jQuery將把“ \\”作為轉義字符:

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

該問題分為兩類:空白和其他。 對於其他人,如方括號,這很簡單:用反斜杠\\使其轉義,就可以了。

由於類的定義,該空間比較棘手:它們是由空格分隔的標記的列表 這意味着,您不能保證任何瀏覽器都會保持順序(定義單個類)。

幸運的是,您可以像下面這樣查詢每個“以空格分隔的”類:

.LEVEL.5

請注意,空格現在被點代替。 但是,您不能將此解決方案應用於行中更多的空間,也不能在例如空格和制表符之間進行選擇。

+這樣的特殊字符可以用作類名,

必須在CSS反斜杠將其轉義

參見How to escape any character in CSS ;

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

經過測試,它對CSS很好用,但是在jQuery中,您使用DOUBLE \\\\

:)

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM