아래 예제에 따라 객체의 JS 배열을 얻기 위해 다음 HTML을 매핑하는 방법에 대한 제안이 있습니까?
<ul>
<li class="header">Header</li>
<li><span>val1</span></li>
<li><span>val2</span></li>
<li><span>val3</span></li>
<li class="header">Another Header</li>
<li><span>val4</span></li>
<li><span>val5</span></li>
</ul>
객체의 JS 배열 :
[{
"header": "Header",
"values": ["val1", "val2", "val3"]
},
{
"header": "Another Header",
"values": ["val4", "val5"]
}]
이것이 내가 얼마나 멀리 왔는지입니다.
var els = $('ul > li');
var obj = [];
els.each(function(index, item) {
if ($(item).hasClass("heading")) {
// maybe push this object with a heading into an array,
// then add to the object on following iterations and create next object when next .heading
}
});
질문에서 말했듯 이 html 을 매핑 하고 싶습니다 . 그래서 사용하십시오 .map
!
이 코드는 그것을 할 수 있습니다 :
var arr = $('.header').map(function(){
var obj = {}
obj.header = $(this).text();
obj.values = $(this).nextUntil('.header').map(function(){
return $(this).text();
}).get()
return obj;
}).get()
바이올린 : http://jsfiddle.net/2UDwc/7/
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다