반응형
jQuery에서 목록 요소 내용의 배열 가져 오기
다음과 같은 구조가 있습니다.
<ul>
<li>text1</li>
<li>text2</li>
<li>text3</li>
</ul>
javascript 또는 jQuery를 사용하여 텍스트를 배열로 가져 오려면 어떻게해야합니까?
['text1', 'text2', 'text3']
이 후 내 계획은 아마를 사용하여 문자열로 조립하고 다음 .join(', ')
과 같은 형식으로 가져 오는 것입니다.
'"text1", "text2", "text3"'
var optionTexts = [];
$("ul li").each(function() { optionTexts.push($(this).text()) });
... 트릭을해야합니다. 찾고있는 최종 출력을 얻으려면 join()
몇 가지 연결이 잘 수행됩니다.
var quotedCSV = '"' + optionTexts.join('", "') + '"';
중복 중간 어레이가없는 경우 :
arr = $('li').map(function(i,el) {
return $(el).text();
}).get();
jsfiddle 데모 보기
그리고 깨끗한 자바 스크립트에서 :
var texts = [], lis = document.getElementsByTagName("li");
for(var i=0, im=lis.length; im>i; i++)
texts.push(lis[i].firstChild.nodeValue);
alert(texts);
킴 스틱은 가까웠지만 정답은 아니었다.
편리한 한 줄로 수행하는 방법은 다음과 같습니다.
$.map( $('li'), function (element) { return $(element).text() });
다음은 jQuery의지도 기능에 대한 전체 문서입니다. 매우 편리합니다. http://api.jquery.com/jQuery.map/
완전히 대답하기 위해 찾고 있던 전체 기능은 다음과 같습니다.
$.map( $('li'), function (element) { return $(element).text() }).join(', ');
var arr = new Array();
$('li').each(function() {
arr.push(this.innerHTML);
})
다음과 같이 할 수 있습니다. 코드 한 줄이면 충분합니다
let array = $('ul>li').toArray().map(item => $(item).html());
관심있는 요소 얻기
아이를 낳다
toArray () 메서드에서 배열 가져 오기
원하는 결과를 필터링
let array = $('ul>li').toArray().map(item => $(item).html());
console.log(array);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>text1</li>
<li>text2</li>
<li>text3</li>
</ul>
참고 URL : https://stackoverflow.com/questions/247023/get-an-array-of-list-element-contents-in-jquery
반응형
'program story' 카테고리의 다른 글
'URL'에서 'createObjectURL'실행 실패 : (0) | 2020.08.20 |
---|---|
ES6 화살표 함수와 함께 jQuery $ (this) 사용 (이 바인딩 어휘) (0) | 2020.08.20 |
GoogleSignatureVerifier 서명이 유효하지 않음 메시지 (Google Play 서비스 9.0.0) (0) | 2020.08.19 |
shared_ptr은 어디에 있습니까? (0) | 2020.08.19 |
HTML5 태그의 PHP DOMDocument 오류 / 경고 (0) | 2020.08.19 |