繁体   English   中英

JQuery无法识别动态生成的id

[英]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");
                }  

http://jsfiddle.net/yy21h9s1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM