我有一個id =「A B」的元素。下面的代碼失敗:jQuery:處理id屬性中的空格
<input type="text" id="A B">
<script>$("#A B").click(function(){alert();});</script>
下面的代碼不會失敗:
<input type="text" id="AB">
<script>$("#AB").click(function(){alert();});</script>
我有一個id =「A B」的元素。下面的代碼失敗:jQuery:處理id屬性中的空格
<input type="text" id="A B">
<script>$("#A B").click(function(){alert();});</script>
下面的代碼不會失敗:
<input type="text" id="AB">
<script>$("#AB").click(function(){alert();});</script>
雖然這在技術上是無效的有一個ID空間在HTML屬性值(見@ karim79的答案) ,你可以使用jQuery來選擇它。
見http://mothereffingcssescapes.com/#A%20B:
<script>
// document.getElementById or similar
document.getElementById('A B');
// document.querySelector or similar
$('#A\\ B');
</script>
jQuery使用一個選擇器API的語法,所以你可以使用$('#A\\ B');
與id="A B"
選擇的元素。
要定位在CSS中的元素,你可以逃脫這樣的:
<style>
#A\ B {
background: hotpink;
}
</style>
[用空格jQuery的標識](的
如果有人想知道,這也適用於水豚當試圖選擇一個空間的ID。 –
ID tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
那報價從另一個計算器答案拉:jquery IDs with spaces
無論是HTML4也不HTML5允許ID屬性值中的空格字符。
的HTML 4.01規範規定,ID令牌必須以字母 ([A-ZA-Z])開始和之後可以是任何數量的字母,數字 ([0-9]),連字符( - ),下劃線(_),冒號(:)和句點(。)。 對於class屬性,沒有這樣的限制。類名稱可以包含任何字符,並且它們不必以 的字母開頭纔有效。
HTML5擺脫了id屬性的額外限制。 只剩下要求 - 除了在文檔中是唯一的 - 是 該值必須至少包含一個字符(不能爲空), ,並且它不能包含任何空格字符。
來源:
+1這是正確的。然而,儘管在HTML中有一個ID屬性值的空間在技術上是無效的,[如果你正確地轉義你的jQuery選擇器,你可以使它工作](http://stackoverflow.com/questions/6802765/jquery-dealing-with -a - 空間 - 內式ID-屬性/ 7873035#7873035)。 –
正如他們說你不應該在標識中使用空格。 但無論如何,這不適合你嗎?
$("[id='A B']").click(...)
編輯:是的,它的工作原理,測試它!不要殺我,標準愛好者! ;-P
可能重複http://stackoverflow.com/questions/596314/jquery-ids-帶空格) –