相关疑难解决方法(0)

如何为某些HTML标记存储任意数据

我正在制作一个由javascript提供一些交互的页面.仅作为示例:发送AJAX请求以获取文章内容然后在div中显示该数据的链接.显然在这个例子中,我需要每个链接来存储额外的信息:文章的ID.我一直在处理它的方式是将这些信息放在href链接中:

<a class="article" href="#5">
Run Code Online (Sandbox Code Playgroud)

然后我使用jQuery来查找a.article元素并附加相应的事件处理程序.(不要太在意这里的可用性或语义,这只是一个例子)

无论如何,这种方法有效,但它有点味道,根本不可扩展(如果click函数有多个参数会发生什么?如果其中一些参数是可选的,会怎样?)

显而易见的答案是在元素上使用属性.我的意思是,这就是他们的目的,对吗?(的种类).

<a articleid="5" href="link/for/non-js-users.html">
Run Code Online (Sandbox Code Playgroud)

我最近的一个问题中,我问这个方法是否有效,结果是没有定义我自己的DTD(我没有),那么不,它是无效的或可靠的.一个常见的反应是将数据放入class属性中(虽然这可能是因为我选择不当的例子),但对我而言,这更令人闻趣.是的,它在技术上是有效的,但它不是一个很好的解决方案.

我过去使用的另一种方法是实际生成一些JS并将其插入到<script>标记的页面中,创建一个与该对象关联的结构.

var myData = {
    link0 : {
        articleId : 5,
        target : '#showMessage'
        // etc...
    },
    link1 : {
        articleId : 13
    }
};

<a href="..." id="link0">
Run Code Online (Sandbox Code Playgroud)

但这可能是维持对接的真正痛苦,而且通常只是非常混乱.

那么,为了解决这个问题,你如何为HTML标签存储任意信息

html javascript

329
推荐指数
8
解决办法
21万
查看次数

IE5中的HTML5自定义数据属性是否"正常"?

自定义数据属性:http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data

当我说"工作"时,我的意思是,如果我有这样的HTML:

<div id="geoff" data-geoff="geoff de geoff">
Run Code Online (Sandbox Code Playgroud)

将以下JavaScript:

var geoff = document.getElementById('geoff');
alert(geoff.dataGeoff);
Run Code Online (Sandbox Code Playgroud)

在IE 6中产生一个带有"geoff de geoff"的警报?

javascript html5 internet-explorer internet-explorer-6 custom-data-attribute

173
推荐指数
4
解决办法
7万
查看次数