data-*
속성 이 0 개 이상인 임의의 HTML 요소가 주어지면 데이터의 키-값 쌍 목록을 검색하는 방법이 있습니다.
예를 들면 다음과 같습니다.
<div id='prod' data-id='10' data-cat='toy' data-cid='42'>blah</div>
프로그래밍 방식으로 이것을 검색하고 싶습니다.
{ "id":10, "cat":"toy", "cid":42 }
$.data()
키를 미리 알고 있으면 jQuery (v1.4.3)를 사용하여 개별 데이터 비트에 액세스하는 것이 간단하지만 임의의 데이터 세트로 어떻게 수행 할 수 있는지는 확실하지 않습니다.
'단순한'jQuery 솔루션이 있으면 찾고 있지만 그렇지 않으면 더 낮은 수준의 접근 방식을 신경 쓰지 않습니다. 파싱을 시도 $('#prod').attributes
했지만 Javascript-fu가 부족하여 실망 스럽습니다.
최신 정보
customdata 는 내가 필요한 것을 수행합니다. 그러나 기능의 일부에 대해서만 jQuery 플러그인을 포함시키는 것은 과도한 것으로 보입니다.
소스를 살펴보면 내 코드를 수정하는 데 도움이되었고 Javascript-fu가 향상되었습니다.
내가 생각해 낸 해결책은 다음과 같습니다.
function getDataAttributes(node) {
var d = {},
re_dataAttr = /^data\-(.+)$/;
$.each(node.get(0).attributes, function(index, attr) {
if (re_dataAttr.test(attr.nodeName)) {
var key = attr.nodeName.match(re_dataAttr)[1];
d[key] = attr.nodeValue;
}
});
return d;
}
업데이트 2
허용 된 답변에서 알 수 있듯이 솔루션은 jQuery (> = 1.4.4)로 간단합니다. $('#prod').data()
필요한 데이터를 반환합니다.