博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js如何只获得Element自定义属性(自己手写在标签上的规定属性),不是自定义属性$(obj).attr("xx")...
阅读量:6734 次
发布时间:2019-06-25

本文共 1752 字,大约阅读时间需要 5 分钟。

hot3.png

1.遍历某element元素获得属性时,属性包含的信息有很多来自原型链上的属性和方法,而这些信息有时候我们是不需要的。用下面的方法只获得我们手写在标签上的自己指定的信息。

103144_ZpdY_1052786.png

2.获得我们手写在标签上的值:

103516_xyMY_1052786.png

<!doctype html>

<html lang="en">
 <head>
 
  <title>Document</title>
   <script type="text/javascript" src="jquery-1.6.js"></script>
 </head>
 <body>
    <input type="checkbox" name="cbx_check" id="c1" value="v1"  p1="p1" p2="p2" p3="p3"/>
    
    <script type="text/javascript">  

        function getElementAttrObj(elementObj) {  

            var elementAttrObj = {};

            if(elementObj){

                var el = elementObj;
                var atts = el.attributes;  
                var el_specified_key_val_str = '';
                for (var i =0,len = atts.length; i < len; i++) {  
                    var att = atts[i];  
                    //console.info(att.specified+"-"+att.name + '-' + att.value );
                    debugger;
                    var att_name = att.name.toLowerCase();
                    //规定属性
                    if (att.specified || att_name == 'value') {  
                        el_specified_key_val_str += ',"' + att.name + '":"' + att.value + '"';
                    }  
                }  
                //属性对象
                if(el_specified_key_val_str){
                    el_specified_key_val_str = el_specified_key_val_str.substr(1);
                    var el_specified_str = "{";
                    el_specified_str += el_specified_key_val_str;
                    el_specified_str += "}";
                    elementAttrObj = eval('(' +  el_specified_str + ')');
                    //console.info(el_specified_key_val_str);
                }
            }

            return elementAttrObj;

        }  

        var el = document.getElementById("c1");

        var elementAttrObj = getElementAttrObj(el);  
        var str = "";
            for(p in elementAttrObj){
                str += p + ":" + elementAttrObj[p] + ",";
            }
            alert(str);  

    

          
       //jquery的方法  
    /*
        $("#c1").each(function () {  
            var arr = [];  
            var attrs = $(this).get(0).attributes;  
            for (i = 0; i < attrs.length; i++) {  
                att = attrs[i];  
                if (att.specified && att.name.toLowerCase().indexOf("data-") != -1) {  
  
                    arr.push(att.name + ":" + att.value);  
                    $(this).get(0).removeAttribute(att.name);  
                }  
            }  
            var str = arr.join("");  
            alert(str);  
        }) 
      */    
    </script>  

 </body>

</html>
 

转载于:https://my.oschina.net/u/1052786/blog/1476115

你可能感兴趣的文章
Java Swing 探索(一)LayoutManager
查看>>
JavaScript高级程序设计学习笔记--引用类型
查看>>
我的研二
查看>>
GCC交叉编译链命名
查看>>
C#获取远程计算机硬件信息实例(支持linux和windows)
查看>>
很好的理解遗传算法的样例
查看>>
Win32 实现 MFC CFileDialog 对话框
查看>>
数学图形(1.21)蚌线
查看>>
ClassRequestHandler or VendorRequestHandler wIndex must be less than NumIFs
查看>>
指定范围内生成随机数
查看>>
Dorado事件的参数
查看>>
C语言二维数组作为函数的参数
查看>>
图片轮显效果大全
查看>>
8月7号晚7点Autodesk北京办公室,我们来聊聊HTML5/ WebGL 3D 模型浏览技术
查看>>
[Backbone]2. More detail in Models
查看>>
Permutations leetcode java
查看>>
[Git] git revert ( revert commit 和 revert merge)
查看>>
JAVA中关于锁机制
查看>>
用boost共享内存实现进程通信的例子
查看>>
【转】搜狗开源内部项目管理平台Cynthia意欲何为
查看>>