我有一個標籤一堆HTML的是這樣的:jQuery的ID選擇不工作
<div id="Field~1">Text text</div>
我不能正常使用ID選擇,如:
alert($("#Field~1").text())
我猜測它的東西用「〜」做,但可以引用這些類型嗎?
我已經建立了的jsfiddle這裏:http://jsfiddle.net/4M97c/
我有一個標籤一堆HTML的是這樣的:jQuery的ID選擇不工作
<div id="Field~1">Text text</div>
我不能正常使用ID選擇,如:
alert($("#Field~1").text())
我猜測它的東西用「〜」做,但可以引用這些類型嗎?
我已經建立了的jsfiddle這裏:http://jsfiddle.net/4M97c/
您需要使用\\
來選擇所有出現在特殊字符中的特殊字符。
第一種方法:
alert($("#Field\\~1").text())
方法二:
var ID="Field~1";
alert($("[id='"+ID+"']").text())
請不要使用第二種方法:) –
你需要逃避特殊字符~
雙反斜線\\
。從docs:
使用任何元字符(如 「#$%&「()* +,/ :; < => @ [] ^`{? |}〜)作爲名稱的文字部分,它必須 轉義與兩個反斜槓:\\
alert($("#Field\\~1").text())
只是這樣做:
alert($('[id="Field~1"]').text())
這是一串id表示,所以你不必擔心轉義特殊字符。
雖然這不會使用'document.getElementById()'。 –
@jack無法讓你。 – Jai
您正在使用的選擇器檢查頁面上的* all *元素,並檢查它們中的任何一個是否具有屬性「id」,其值爲「Field〜1」;這遠沒有效率。 –
按理說最簡單的(和性能最佳的)的方式來處理在標識符的特殊字符是使用getElementById()
,敷一個jQuery對象的內部。
alert($(document.getElementById('Field~1')).text());
另外選擇器,還$()
還接受DOM元素並將其變爲一個jQuery對象。
的'〜'也被稱爲[下一個選擇器的兄弟姐妹(http://api.jquery.com/next-siblings-selector/)。 –