zoukankan      html  css  js  c++  java
  • [网络收集]html 一个属性,多个数据

    网上找到的方法,特记录下

    <div title="{name:'haha',id:6}" style="background:pink" onmousedown="eval('var obj='+this.title);alert(a.name);">lalala</div>

    这里用到的灵感来源于ajax返回的json格式数据,要使json形式的字符串转化为JavaScript对象,通常使用的是:

    eval('var re='+'o.responseText.replace(/<!--(.*?)-->/g, ''));

    同理,倘若,你使用的library是允许你直接访问dom的原生节点时,比如yui2,或者你没用任何lib,而你需要服务器端在你的div, li, 或是任何标签上吐给你一系列(数量>2)的值的时候,我推荐使用json的形式在dom里存放这些数据。
    首先,它很方便,只要eval之后,就可以根据这个生成的obj以简单高效的key=value方式来获取值。

    其次,json最重要的贡献在于它在人类语言和机器语言之间的平衡。既然它被douglas发明出来,为什么不使用它呢?:)
    看看这些不好的例子:
    1)使用titile="haha&6&func":

    <div title="haha&6" style="background:pink" onmousedown="var arr=this.title.split('&');alert(arr[0])">

    2)使用这个标签的所有属性来存放值:

    <div title="haha" lang="6" align="v">

    缺点是:当后端需要传给前端的数据愈多,你会满大街的找节点的原生属性。

    这两种方法的共同缺点是:
    在前端开发这种需求和开发人员都时常变动的情况下,当后端和前段工程师都换了人,谁会知道你的"haha"是代表着"title",而"6"是id的值?

  • 相关阅读:
    实现字符串的翻转
    svn的安装和配置
    insert php code test
    收集的一些题
    制作多选框,并通过PHP获取多选框数据
    laravel 导出
    laravel migrate 指定文件执行
    laravel facebook等第三方授权登录
    Mysql 时间字段(加上或者减去一段时间)
    配置指定日志记录目录
  • 原文地址:https://www.cnblogs.com/knightyj/p/3670317.html
Copyright © 2011-2022 走看看