[英]JQuery doesn't recognize dynamically generated id
我搜索了一段时间,但我无法找到解决这个问题的方法。
我正在使用JSP和Servlet。 我运行一个JSP,动态生成一些代码。
当我启动程序时,我可以正确地看到一切。 事实上我已经打开了网页的源代码,一切似乎都是正确的。
在该代码中,它显示一个id为PAR1.1:ED的<td>
标记
<.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?
非常感谢你!
问题在于结肠和时期; 你需要在你的选择器中转义它们 :
if ($("#PAR1\\.1\\:ED").length ){
alert("exists");
}
这也是JSF中的常见问题,其中许多生成的id内部都有冒号。 虽然不禁止使用冒号作为id,但它与CSS选择器中伪类的含义相冲突。
尝试这个 :
问题是,如果您正在使用带有字符(例如句点)的“#”查找id,则jquery选择器会发生冲突。 如果你使用部分选择器,那就没关系。
if( $("[id^='PAR1.1:ED']").length)
{
alert("exists");
}
else{
alert("doesn't exist");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.