使用非法字符设置DIV ID名称

时间:2011-11-01 22:13:04

标签: javascript php html

不幸的是,我需要通过ID转发文件路径。 DIV ID =“dir / dir2 / file.txt”,其中包含非法字符。即使base64也不会给出解决方案。如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

您可以通过在id属性中不使用非法字符来解决此问题。该属性用于标识,而不是用于传递数据。如果您需要在DOM的DOM中存储与元素相关的数据,您可以使用HTML5 specification中所述的data-*属性。或者只是将它们放在script块中的有用数据结构中,以便您可以直接访问它。

答案 1 :(得分:1)

帮助您修复底层问题(导致需要这些ID)可能比帮助您对ID中的文件路径进行编码更容易,更好。如果您解释一下基础问题的背景知识,或许可以找到解决方案吗?

话虽如此,你问题的答案可能是:

  1. 无法修复,因为您需要ID中不允许使用的字符。

  2. 或者......想想一些非常荒谬的替换方案,将特殊路径字符转换为有效的ID字符。您可以使用ID中的冒号字符作为转义字符,以指示跟随的是unicode编号。要了解我的目标:

  3. D:\directory something\wéírddir\file.txt

    这个ID会变得相似:

    D:2233directory:4455something:2233w:8877:0099rdir:2233file.txt

    其中:2233应该是反斜杠的实际数字等等。另外,由于你必须以ID中的字母开头(在路径中不一定是这种情况),你可以像约定总是以某个字母开头(并在服务器端再次解析ID时忽略该字符)。

    注意:我绝对推荐这个解决方案(!!),但是弄​​清楚是否可以完成它似乎很有趣:D

    PS。还应该看看这个SO question