support data-* attr