2017-09-25 89 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