li 안의 텍스트를 가져오려고 합니다. 채택완료

2년 전 조회 2,622

Copy
<li>
    <span>텍스트1</span><span>텍스트2</span>
</li>
<li>
    <span>텍스트3</span><span>텍스트4</span>
</li>
<li>
    <span>텍스트5</span><span>텍스트6</span>
</li>

 

제이쿼리로

li 안에 텍스트가 있을 때, 텍스트를 전부 가져와 배열에 담으려고 합니다.

 

그누보드를 커스텀 중인데

li안에 선택한 상품목록이 있는데, 결제 페이지에 넘기려고 합니다.

 

Copy
텍스트1텍스트2, 텍스트3텍스트4, 텍스트5텍스트6

 

배열로 받아도 되고, 구분자(예를들어|, @@)등을 넣어서 텍스트로 받아도 됩니다.

 

어떤 방법이 있을까요?

 

 

답변 6개

채택된 답변
+20 포인트

Copy
var code = [];

$('li span').each(function(){

  code.push($(this).text());
}):

 

code = code.join('|');

console.log(code);
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

li안에 선택한 상품목록이 있는데, 결제 페이지에 넘기려고 합니다...

===

php에서 해결하시는 것이 쉬울 듯합니다.

따로 <form을 만들어 it_id들을 넘기는 방식은 어떨까요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

li의 부모 ul에 id 부여

<ul id='my'>

 

arr=[];
$('#my li').each(function(){
      arr.push( $(this).text() );
});

alert(arr)

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Copy
<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <script src="http://sir.kr/js/jquery-1.8.3.min.js"></script>
 </head>
 <body>
  <li>
    <span>텍스트1</span><span>텍스트2</span>
  </li>
<li>
    <span>텍스트3</span><span>텍스트4</span>
</li>
<li>
    <span>텍스트5</span><span>텍스트6</span>
</li>
 </body>
 <script>
 var arr = [];
  $('li>span').each(function(){
    arr.push($(this).text());
  });
  aa = arr.join('|');
  document.write(aa);
  console.log(aa);
 </script>
</html>

 

위의 스크립트를 실행시키면  "텍스트1텍스트2텍스트3텍스트4텍스트5텍스트6"  이렇게 몽땅 가지고 옵니다.

해당 text의 내용을 가지과 서 aa란 변수에 넣고 있습니다.

이부분을 조금 응용해보시면 배열식으로 담을수도 있습니다. 어떻께서든 요리(?) 를 할수 가 있지요.

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Copy
var texts = []; // 텍스트를 저장할 배열을 초기화합니다.

$('li').each(function() { // 각 li 요소에 대해 반복합니다.
  var text = ''; // li 안의 텍스트를 저장할 변수를 초기화합니다.
  $(this).find('span').each(function() { // li 안의 각 span 요소에 대해 반복합니다.
    text += $(this).text(); // span 요소의 텍스트를 text 변수에 추가합니다.
    if ($(this).next('span').length) { // 다음 span 요소가 있으면 구분자를 추가합니다.
      text += '@';
    }
  });
  texts.push(text); // 완성된 텍스트를 배열에 추가합니다.
});

var result = texts.join('|'); // 배열의 요소를 구분자로 연결하여 문자열로 만듭니다.
console.log(result); // 넥스트1@텍스트2|텍스트3@텍스트4|텍스트5@텍스트6 출력

 

이런식으로 구현하시면됩니다.

코드는 챗 GPT 가 짜줬습니다~

세상 좋아졌습니다~

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

str_text.replace("찾을 문자열", "변경할 문자열") 를 활용해서

<li>,<span>,</span> 태그를 삭제하고..
</li> 를 구분자로 배열에 담으면 되겠네요.

 

var str = "해당문자열"

str.replace("<li>", "");

str.replace("<span>", "");

str.replace("</span>", "");

var arrString = str.split("</li>"); 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고