< ;/div> $("div").data("role") === "페이지" $("div") === 43; >$("div").data("hidden") === true; $("div").data("options").name === "John";
즉, .data()를 사용하여 값을 얻을 때 jQuery는 먼저 얻은 문자열 값을 부울 값, null, 숫자, 객체, 배열을 포함하는 JS 유형으로 변환하려고 시도합니다. 값이 "true|false"이면 해당 부울 값을 반환합니다.
값이 "null"이면 null을 반환합니다.
값이 순수 숫자로 구성된 문자열인 경우( data ”” === data) 해당 숫자(데이터)가 반환됩니다.
"{key:value }" 또는 [1과 같이 값이 (?:{[sS]*}|[[sS]*])$로 구성된 경우 2,3], jQuery.parseJSON을 사용하여 구문 분석해 보세요.
그렇지 않으면 문자열 값을 반환합니다.
물론 문서에도 구체적으로 명시되어 있습니다. 문자열 값을 가져오고 자동으로 변환된 값을 가져오지 않으려면 .attr("data-" key)를 사용하여 해당 값을 가져올 수 있습니다.
코드 복사
코드는 다음과 같습니다.
값의 속성을 변환하지 않고 문자열로 검색하려면 attr() 메서드를 사용하세요. >
다음은 jQuery 소스코드입니다코드 복사
코드는 다음과 같습니다
function dataAttr(elem, key, data) {
// 내부적으로 아무것도 발견되지 않은 경우 /*.data(key) 메소드는 얻은 값을 다음으로 변환하려고 시도합니다. 부울, null, 숫자, 객체, 배열을 포함한 JS 유형*/ data = data === "true" ? true :
data === "false" ? false :
data === "null" ? null :
// 문자열이 변경되지 않는 경우에만 숫자로 변환합니다.
data "" === data ? data :
/*rbrace = /(?:{[ sS]*}|[[sS]*] )$/,*/
rbrace.test( data ) ? jQuery.parseJSON( data ) :
data
} catch( e ) {}
// 나중에 변경되지 않도록 데이터를 설정했는지 확인하세요
jQuery.data( elem, key, data )
} else {
data = undefine; >}
데이터 반환
}