배열을 jQuery .data () 속성에 전달하는 방법
좋아, 그래서 나는 매우 기본적인 배열을 jquery 데이터 attrubute 서버 측에 다음과 같이 전달하고 싶다.
<div data-stuff="['a','b','c']"></div>
그런 다음 다음과 같이 검색하십시오.
var stuff = $('div').data('stuff');
alert(stuff[0]);
왜 이것이 'a'가 아니라 '['경고로 표시됩니까 (JSfiddle 링크 참조)
JSFiddle 링크 : http://jsfiddle.net/ktw4v/3/
변수를 문자열로 처리하고 0 번째 요소는 [
.
이는 문자열이 유효한 JSON 이 아니기 때문에 발생 합니다. 이는 작은 따옴표 대신 큰 따옴표를 문자열 구분 기호로 사용해야합니다. 그런 다음 작은 따옴표를 사용하여 전체 속성 값을 구분해야합니다.
인용 부호를 수정하면 원래 코드가 작동합니다 ( http://jsfiddle.net/ktw4v/12/ 참조 ).
<div data-stuff='["a","b","c"]'> </div>
var stuff = $('div').data('stuff');
jQuery가 데이터 속성에서 유효한 JSON을 발견하면 자동으로 압축을 해제합니다 .
속성으로 선언하면 문자열임을 의미합니다.
따라서 stuff[0]
다음과 동일합니다.var myString = "['a','b','c']"; alert(myString[0]);
다음과 같이 만들어야합니다.
<div data-stuff="a,b,c"></div>
var stuff = $('div').data('stuff').split(',');
alert(stuff[0]);
철회 : jQuery의 구문 분석이 parseJSON의 규칙을 충족하지 않았기 때문에 실패합니다.
그러나 나는 내 솔루션 뒤에 설 것입니다. 이 솔루션이 어떤면에서 이상적이지 않은 것처럼 이상적이지 않은 다른 측면이 있습니다. 모두 당신의 패러다임이 무엇인지에 달려 있습니다.
다른 사람들이 식별했듯이 값은 문자열로 처리되어 "["를 반환합니다. 이것을 시도하십시오 (aaa는 div의 이름이고 데이터를 꺼 냈습니다).
$(function(){
$.data($("#aaa")[0],"stuff",{"aa":['a','b','c']});
var stuff = $.data($("#aaa")[0],"stuff").aa;
alert(stuff[0]); //returns "a"
});
jsfiddle에 다른 접근 방식이 게시됩니다 . var stuff = $('div').data('stuff');
stuff는 0 번째 문자가 '['인 문자열입니다.
음, var stuff = eval($('div').data('stuff'));
배열을 가져와야합니다
참고 URL : https://stackoverflow.com/questions/6071618/how-to-pass-an-array-into-jquery-data-attribute
'developer tip' 카테고리의 다른 글
mysql 테이블이 myISAM 또는 InnoDB 엔진을 사용하고 있는지 어떻게 알 수 있습니까? (0) | 2020.10.10 |
---|---|
EF 4.1에 엔터티를 삽입하는 것이 ObjectContext에 비해 느린 이유는 무엇입니까? (0) | 2020.10.10 |
R 내에서 깨끗한 R 세션을 종료하고 다시 시작 하시겠습니까? (0) | 2020.10.10 |
Python Flask 의도적 인 빈 응답 (0) | 2020.10.10 |
단어가 포함되지 않은 줄을 일치시키는 방법 (0) | 2020.10.10 |