2017-09-25 128 views
-1

假設我有一個<li id="gen__1002_____46.14_li">不能使用ID爲「。」的查詢選擇器。

我想選擇這個li

爲了能夠實現它,我寫的,

var id="gen__1002_____46.14_li"; 
document.querySelector("#" + id); 

但querySelector爲返回;

Failed to execute 'querySelector' on 'Element': '#gen__1002_____46.14' is not a valid selector. 

id不包括dot字符,它正確地進行選擇。

我的問題是,如何選擇一個html dom元素,其ID包括. char。有沒有任何限制,ID不能包括.字符。

有沒有對我有任何解決方案,而不是在ID中刪除。

+0

嘗試像'$('#gen__1002 _____ 46 \\。14_li');' – Znaneswar

+0

我已經試過了,但是這返回爲;未捕獲的DOMException:未能在'Element'上執行'querySelector':'#gen__1002 _____ 46 \\。14'不是有效的選擇器。 – mmu36478

回答

0

你需要躲避點

$('#thisIs\\.anId') // will select <span id="thisIs.anId">test</span> 

而且在純JS:

var id="gen__1002_____46.14_li"; 
id = id.replace(/\./g, '\\\\.'); // escaping dots using regex 
document.querySelector("#" + id); 

編輯

如果你只是想選擇由id元素,使用getElementById()

document.getElementById(id); 
+0

我已經試過了,但是這返回爲; '未被捕獲的DOMException:無法執行'元素'上的'querySelector':'#gen__1002 _____ 46 \\。14'不是有效的選擇器。' – mmu36478

+0

@ mmu36478您使用的是哪種瀏覽器? – mrid

+0

@ mmu36478檢查更新的答案 – mrid