Javascript 如何在ID属性中存储HTML标记?

Javascript 如何在ID属性中存储HTML标记?,javascript,html,store,Javascript,Html,Store,我需要用Java脚本(jQuery)动态显示每个链接的一些文本。问题是文本也被格式化为HTML,因此在后面的视图中会出现一些问题。 现在我将它存储在ID属性中,这是可行的,但只在其中没有嵌入HTML <?php ... $desc = '<p style="color: red">some <span>data</span></p>'; echo '<a href="#" id="' . $desc . '">' . $key .

我需要用Java脚本(jQuery)动态显示每个链接的一些文本。问题是文本也被格式化为HTML,因此在后面的视图中会出现一些问题。 现在我将它存储在ID属性中,这是可行的,但只在其中没有嵌入HTML

<?php
...
$desc = '<p style="color: red">some <span>data</span></p>';
echo '<a href="#" id="' . $desc . '">' . $key . '</a>';
?>


不允许Ajax请求。有没有一种简单的方法可以达到这个目标?

id属性是最不合适的位置之一(必须是唯一的,不能包含所有字符)。使用
数据-
属性(在HTML5中引入,但也适用于旧浏览器,且不使用HTML5 doctype)代替:

为此目的:

$desc=”

一些数据; 回声';


其他评论绝对正确。不要这样做。在
id
属性中除了某种标识符之外,不适合放置任何东西


话虽如此,我想我会让你知道为什么你的代码会失败。您需要先使用您的数据,然后才能按您的意愿使用它。这样,HTML就不会被解释为HTML。。。所有HTML实体都将被转换为,因此属性值将被解释为文本
变成
等等。如果您稍后(使用jQuery或其他工具)提取该值,您将得到预期的文本。

答案很简单:不要这样做。HTML标记包含大量ID中不允许的内容。这是对
ID
属性+1的严重滥用。那
我觉得更糟<代码>:)
唯一的小问题可能是,如果他需要验证以下HTML5,这是一个人为的问题。例如,添加Facebook OpenGraph标记也会导致HTML无效。好的,使用htmlspecialchars()我将分解HTML。但是如何用Java脚本将其转换回来呢?不需要这样做。该函数将转义字符,因此在检索属性时,可以像转义之前一样获得正确的数据。