HTML链接带点(。)的ID

时间:2012-11-16 05:03:08

标签: php jquery html

  

可能重复:
  How to select html nodes by ID with jquery when the id contains a dot?

我有一个jquery模式,功能是显示配置文件框。

<a rel="Modal" href="#<?php echo $username; ?>">Profile</a>

如果用户名没有使用ID点(。)

,到目前为止还可以
<div id=<?php echo $username; ?>

当使用ID dot(。),例如john.doe的用户名时,问题就出现了。该框无法显示任何内容。

那我怎么设置呢?

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

您实际上并未显示正在显示模式的Javascript,但是使用jQuery,您需要转义选择器中的任何.

答案 1 :(得分:1)

使用$('#john\\.doe')。似乎正在使用Chrome和FF。

答案 2 :(得分:1)

快速而肮脏的解决方案是将问题字符转换为更少问题的字符。例如

<?php $normalisedUsername = htmlspecialchars(
    str_replace('.', '_', $username), ENT_QUOTES); ?>

<a rel="Modal" href="#<?php echo $normalisedUsername; ?>">Profile</a>

<!-- snip -->

<div id="<?php echo $normalisedUsername ?>"> ...

我说这很脏,因为.在ID属性中完全有效。更好的解决方案是改变用于查找模态内容的jQuery代码。执行此操作的范围完全取决于您的模态实用程序是您自己编写的实用程序还是jQueryUI或Bootstrap等库的一部分。

例如,如果您使用的是Bootstrap's Modal,则可以将相应的转义符添加到触发器的data-target属性中,例如

<button type="button" data-toggle="modal" data-target="#john\\.doe">Launch modal</button>

答案 3 :(得分:0)

尝试使用:

echo str_replace($search, $replace, $subject)

以下是详细信息tutorials