我正在为使用WYSIWYG构建的页面编写javascript。不,我目前无法进入并更改ID或真正调整DOM。
这是我想要选择的DOM元素(这是由WYSIWYG创建的)。
<td nowrap="true" align="left" id="vW2070;" name="vW2070;" style="padding-left: 2pt; padding-right: 2pt; border-left: 1pt solid black; cursor: auto; background-color: rgb(164, 194, 64); color: rgb(0, 0, 0);" class=" nAll selected" selected="1" sn="itemList">TOP 5</td>
目前在我的javascript中,我想要的ID是#vW2070;
。出于某种原因,document.getElementById("vW2070;")
完全返回,但$("#vW2070;")
返回null。为什么是这样?我需要使用jQuery选择器。
相关功能在$(document).ready
上运行。
我从未见过这样的事情。
谢谢大家。
编辑:如果没有分号,它也不会捡起它。由于WYSIWYG,分号字面意思在元素的ID属性中。
答案 0 :(得分:7)
你可以像这样转义分号:
$("#vW2070\\;") //Use one backslash to escape the semicolon for the Sizzle parser and the other to escape the first backslash for the javascript parser, so two in total
或
$(document.getElementById("#vW2070;")).jquerystuff(...);
JSFiddle:http://jsfiddle.net/HTyQC/
另外,a relevant link关于id属性的多样性。
答案 1 :(得分:3)
由于您无法编辑带有分号的ID,请尝试在选择器中转义它,如下所示:
$("#vW2070\\;")
在这里转义只不过是在分号前添加“\ \”。
答案 2 :(得分:1)
尝试删除;你不应该需要它
$("#vW2070")
答案 3 :(得分:1)
尝试将分号$("#vW2070;")
移至$("#vW2070")
您是否收到错误消息?在Chrome中,您应该获得Uncaught Error: Syntax error, unrecognized expression: ;
答案 4 :(得分:1)
答案 5 :(得分:1)
如果你的元素id
中确实有一个分号,那么 technically its invalid。
修改 HTML5 spec似乎不会排除空格以外的任何字符。
您可以使用双反斜杠#vW2070\\;
否则,只需从选择器代码中删除分号。
答案 6 :(得分:0)
这是jquery bug或者我们可以说当前jquery版本的限制。它不会允许';'在ID。