jQuery에서 목록 요소 내용의 배열 가져 오기 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());
  • 관심있는 요소 얻기

    1. 아이를 낳다

    2. toArray () 메서드에서 배열 가져 오기

    3. 원하는 결과를 필터링

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>


답변