가장 쉬운 옵션은 바로 DOM 객체에 자신의 속성을 사용하는 것입니다
var element = document.getElementById("test");
element.myData = "whatever";
여기 jQuery의
.data()
기능을 사용하면 자신의 일반 자바 스크립트에서 사용할 수 있다는 것을 어떻게 작동하는지 뒤에 일반적인 생각이다. 개체에 대해 하나의 사용자 지정 특성을 사용하고 그 밖의 모든 항목을 해당 사용자 지정 특성의 값으로 인덱싱 된 데이터 구조에 저장합니다.
var idCntr = 0; // global cntr
var data = {};
var element = document.getElementById("test");
var id = element.uniqueID;
if (!id) {
id = idCntr++ + "";
element.uniqueID = id;
}
data[id] = "whatever";
// then some time later, you can do this
var element = document.getElementById("test");
console.log(data[element.uniqueID]); // whatever
데이터 개체의 특정 개체에 대한 여러 특성을 저장하는 데는 좀 더 복잡하지만이 방법이 일반적입니다. 당신이 jQuery를 사용할 수 있는지
는 그리고, 그것은 사소한 :
$("#test").data("myData", "whatever"); // sets the data
console.log($("#test").data("myData")); // retrieves the data
정말 jQuery의 .data()
작품, 당신은 데이터를 설정하고 다음을 사용하는 경우를 검색하는 첫 번째 통화를 단계별로하는 방법을 보려면 unminified jQuery. 그것은 무엇을하는지 쉽게 알 수 있습니다.
달성하려는 목표는 무엇입니까? DOM 노드에서 자신의 데이터 구조로의 빠른 검색? 그렇다면 노드 오브젝트에 사용자 정의 특성을 항상 첨부 할 수 있습니다. –
@AtesGoral, 당신이 옳은 것은 내가 성취하려는 것입니다. 나는 속성과 속성의 차이를 알지 못했습니다. 주어진 노드의 편집 속성은 해당 노드의 수명 동안 지속됩니다 (문서에있는대로)? –
나는 100 % 확실하지는 않지만 특정 노드의 속성은 해당 노드의 수명 동안 지속됩니다. 특정 JS 객체가 기존 DOM 노드에 지정되도록하는 특정 브라우저에 특별한 경우가 있는지 모르겠다. –