js如何只获得Element自定义属性(自己手写在标签上的规定属性),不是自定义属性$(obj).attr("xx")
2017-07-20 00:00
771 查看
摘要: 参考:http://blog.csdn.net/yw1688/article/details/48677781, http://www.w3school.com.cn/jsref/prop_attr_specified.asp
1.遍历某element元素获得属性时,属性包含的信息有很多来自原型链上的属性和方法,而这些信息有时候我们是不需要的。用下面的方法只获得我们手写在标签上的自己指定的信息。
2.获得我们手写在标签上的值:
<!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>
1.遍历某element元素获得属性时,属性包含的信息有很多来自原型链上的属性和方法,而这些信息有时候我们是不需要的。用下面的方法只获得我们手写在标签上的自己指定的信息。
2.获得我们手写在标签上的值:
<!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>
相关文章推荐
- js获得当前系统时间(html标签自定义属性)
- jquery的attr方法与ie7不兼容,js获取html标签自定义属性
- document.getElementById("xx").style.xxx中的所有属性是什么
- js判断document.getElementByid("")获得的对象是否存在
- js 点击a标签 获取a的自定义属性方法
- Jquery学习笔记: attr和 prop的区别,以及为html标签自定义属性
- js 点击a标签 获取a的自定义属性
- document.getElementById("idName")用js方法获取元素,则设定风格属性的方法为
- JS中使用"data-"开头的属性及data()方法实现自定义属性
- js的Object对象如何访问中间有 . 点号的属性(键),获得其值?
- 前端标签的小技巧-----自定义标签属性(灵活使用js/JQ脚本)
- JS 如何改变span标签的是否隐藏属性
- vue.js如何在标签属性中插入变量参数
- jquery如何获得td标签中value属性的值
- ThinkPHP3.2+版本如何自定义自己的标签
- 如何用angularjs制作一个完整的表格之四__自定义ng-model标签的属性使其支持input之外的html元素
- js 如何获取自定义属性的值
- js取值 html标签自定义属性(图)
- JS如何获取A标签里面的链接属性
- Android自定义属性,<attr>标签format属性值