本页介绍了许多以这种方式注释HTML的方法,但是没有一种方法令人满意。
不过,它们几乎就是您所拥有的。尽管该页面不是一个非常好的摘要,但仍然存在错误,并且误解了“不引人注目的” Javascript的含义。
例如,实际上将脚本元素放在主体内是完全有效的—而不是直接放在表元素内。您可以将所有脚本片段放在表的底部,也可以将每一行放在其自己的表中,或者,如果要对DOM进行突变,则可以在有问题的行内添加一些限制。
设置“ id =“ comment-123””,然后扫描所有以“
comment-”开头的id的行,确实适合您的特定情况。为了设置非标识性的额外信息属性,您可以使用HTML5数据属性,也可以使用eg将其入侵到类名中。“
class =“ comment type-foo data-
bar””。当然,ID和类名对于可以使用哪些字符都有其限制,但是可以将任何字符串编码为有效字符串。例如,您可以使用自定义URL样式编码来隐藏非字母数字字符:
<tr > ...</tr>function getClassAttr(el, name) { var prefix= name+'-'; var classes= el.className.split(' '); for (var i= classes.length; i-->0;) { if (classes[i].substring(0, prefix.length)==prefix) { var value= classes[i].substring(prefix.length); return depreURIComponent(value.split('_').join('%')); } } return null;}var greeting= getClassAttr(tr, 'greeting'); // "Hello! ☺"您甚至可以通过以下方式存储复杂的非字符串值:将它们编码为Javascript或JSON字符串,然后使用exec(或JSON.parse,如果有)检索它们。
但是,如果您在其中放置任何不重要的内容,很快就会变得混乱。那是您可能喜欢评论的地方。您可以在此处插入除“-”以外的任何内容,如果碰巧出现在字符串中,则很容易转义。
<table> <tr > <td>...</td> <!-- {"id": 123, "user": 456} --> </tr></table>function getLastComment(node) { var results= []; for (var i= node.childNodes.length; i-->0;) if (node.childNodes[i]==8) return node.childNodes[i]; return null;}var user= getLastComment(tr).user;摘要警告说,由于XML解析器可能会丢弃注释,因此不能保证一定会起作用,但是DOM Level 3
LS解析器必须默认保留它们,并且到目前为止,每个浏览器和主要的XML库都可以保留注释。



