我已经搜索了一段时间,但我无法找到解决此问题的方法。
我正在使用JSP和Servlet。我运行一个JSP,其中一些代码是动态生成的。
当我启动程序时,我可以正确地看到所有内容。事实上,我已经打开了网页的源代码,一切似乎都是正确的。
在该代码中,它显示<td>
标记,其ID为PAR1.1:ED
<.td id="PAR1.1:ED" >3700.0</td>
(我已经故意添加了。在代码中没有意义:P)
然后我有一个脚本,我尝试搜索该ID,但似乎它不存在。
<script type="text/javascript">
$(document).ready(function() {
$(document).on("change", "input", function() {
if( $("#PAR1.1:ED").length ){
alert("exists");
}
else{
alert("doesn't exist");
}
});
});
</script>
如何检测标记ID?
非常感谢!
答案 0 :(得分:3)
问题在于结肠和时期;你需要escape them in your selector:
if ($("#PAR1\\.1\\:ED").length ){
alert("exists");
}
这也是JSF中的常见问题,其中许多生成的id都有冒号。虽然不禁止使用冒号作为id,但它与CSS选择器中伪类的含义冲突。
答案 1 :(得分:0)
试试这个:
问题是,如果您正在使用&#39;#&#39;来查找ID,则jquery选择器会发生冲突。有字符(如句号)。如果你要使用部分选择器,那就没关系。
if( $("[id^='PAR1.1:ED']").length)
{
alert("exists");
}
else{
alert("doesn't exist");
}