HTML 5 data- Attributes

こんなかんじ?


var $D = (function(){
	var camelize = function(string){
	    return string.replace(/-+(.)?/g, function(match, chr) {
	      return chr ? chr.toUpperCase() : '';
	    });
	};
	return function(element){
		if( element.dataset ) return element.dataset;
		var sets = {};
		for(var i=0,a=element.attributes,l=a.length;i<l;i++){
			var attr = a[i];
			if( !attr.name.match(/^data-/) ) continue;
			sets[camelize(attr.name.replace(/^data-/,''))] = attr.value;
		}
		return sets;
	};
})();
<li id="xyz" data-length="1" data-foo-bar='1' data-something="hello">test</li>
alert(JSON.stringify( $D(document.getElementById('xyz')) )); // { length:1 ,fooBar:1,something:"hello" }