경로를 가져 오기 위해 클릭시 부모 li 요소의 텍스트를 결합하는 Jquery

l0ckm4

나는 jquery로 조금 고심하고 있습니다. 다음과 같은 순서없는 목록이 있습니다.

<ul>
  <li class="folder">Folder: Test</li>
  <ul>
    <li class="folder">Folder: Archive</li>
    <ul>
      <li class="file">
        <div class="filename">HelloWorld.docx</div>
        <div class="size">11.79kiB</div>
        <div class="date">2021-01-12 09:31:34</div>
      </li>
      <li class="file">
        <div class="filename">HelloWorld1.docx</div>
        <div class="size">12.79kiB</div>
        <div class="date">2021-01-11 09:31:34</div>
      </li>
    </ul>
  </ul>
</ul>

이렇게 생겼어요

  • 폴더 : 테스트
    • 폴더 : 아카이브
      • HelloWorld.docx
        11.79kiB
        2021-01-12 09:31:34
      • HelloWorld1.docx
        12.79kiB
        2021-01-11 09:31:34

"file"클래스가있는 li를 클릭하면 "folder"클래스가있는 부모 li를 찾아 경로 구조가 무엇인지 되돌아보고 알아 내고 싶습니다.

다양한 조합을 시도했지만 얻을 수 없습니다

이것이 제가 현재 작업하고있는 것입니다.

$(document.body).on('click',"li.file",function (e) {
    console.log("clicked");
    $(this).parents("li.folder").each(function() {
        console.log($(this).text());
    });
});

궁극적으로 부모 폴더와 변수의 파일 이름이있는 전체 경로를 되찾고 싶습니다.

예 : pathtofile = /Test/Archive/HelloWorld.docx

여기 jsfiddle https://jsfiddle.net/e5d7bcyz/ 감사합니다

로리 맥 크로 산

질문에 접근하기 전에 먼저 HTML을 수정해야합니다. ul요소는 다른 ul요소의 자식 일 수 없습니다 . 당신은 포장 할 필요가 ul관련된 자신의 내 li.

또한 span텍스트를 쉽게 검색 할 수 있도록 폴더 이름을과 같은 다른 요소로 래핑해야합니다 . 이것은 텍스트 노드를 통해 트롤링하여 현재 HTML에서 가능할 수 있지만 작성하기가 지저분하고 매우 취약합니다. 간단한 HTML 변경이 가장 좋은 방법입니다.

마지막으로 li클릭 한 상위 요소를 반복 .file하고 순서를 반대로하여 경로를 올바른 형식으로 얻을 수 있습니다. 여기에서 선택한 파일의 파일 이름을 추가 할 수 있습니다. 이 시도:

$.fn.reverse = [].reverse;

$(document).on('click', "li.file", function(e) {
  let $file = $(this);
  let $path = $file.parent().parents('li').reverse();
  let path = $path.map((i, el) => $(el).children('span').text().trim()).get();
  path.push($file.children('.filename').text().trim());
  console.log(path.join('/'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="folder">
    <span>Test</span>
    <ul>
      <li class="folder">
        <span>Archive</span>
        <ul>
          <li class="file">
            <div class="filename">HelloWorld.docs</div>
            <div class="size">11.79kiB</div>
            <div class="date">2021-01-12 09:31:34</div>
          </li>
          <li class="file">
            <div class="filename">HelloWorld1.docs</div>
            <div class="size">12.79kiB</div>
            <div class="date">2021-01-11 09:31:34</div>
          </li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

jquery를 사용하여 부모 "li"텍스트 가져 오기

분류에서Dev

요소 jQuery를 클릭하면 부모 양식 클래스 가져 오기

분류에서Dev

jQuery는 내부에 클릭 된 요소를 기반으로 <li>의 ID를 가져옵니다.

분류에서Dev

jquery는 부모 li의 텍스트를 자식 li로 가져옵니다.

분류에서Dev

부모 요소 클래스를 기반으로 jquery를 사용하여 범위 텍스트 변경

분류에서Dev

jQuery-부모를 통해 클래스별로 요소 가져 오기

분류에서Dev

jquery-스팬 클릭시 li 내부의 확인란 값 가져 오기

분류에서Dev

CKEDITOR-요소를 클릭하면 부모로부터 속성 가져 오기

분류에서Dev

jquery .parentsUntil () 또는 parent ()를 사용하여 html 요소의 상위 부모 가져 오기

분류에서Dev

javascript / jquery를 사용하여 클릭 한 링크의 텍스트 가져 오기

분류에서Dev

JQuery 자식 요소 위로 마우스를 가져가 부모의 CSS를 변경합니다.

분류에서Dev

jquery를 사용하여 특정 클래스가있는 li의 인덱스 위치 가져 오기

분류에서Dev

jQuery / Javascript는이 클래스가있는 요소를 표시하기 위해 여러 요소의 클래스를 가져옵니다.

분류에서Dev

값을 검색하기 위해 요소 호출 방법을 클릭 할 때 jQuery를 통해 선택한 행의 열 값을 가져 오는 방법

분류에서Dev

jQuery를 사용하여 <li> 요소의 데이터 속성 값 가져 오기

분류에서Dev

JQuery-클래스별로 부모의 부모 가져 오기

분류에서Dev

자식 요소 위로 마우스를 가져가 부모의 CSS를 변경 하시겠습니까?

분류에서Dev

상위 div 내부의 버튼 클릭시 여러 하위 div 텍스트 가져 오기

분류에서Dev

텍스트 요소를 표시하기 위해 요소를 가져 오는 Python 및 셀레늄으로 스크래핑 문제

분류에서Dev

Vue-반복 목록의 하위 구성 요소에서 부모 LI에 클래스를 추가합니까?

분류에서Dev

JavaScript로 클릭시 텍스트 구성 요소가있는 li 요소 추가

분류에서Dev

webdriverio로 요소를 내부에 가져 오기 위해 선택기를 연결하는 방법

분류에서Dev

jquery의 ID 또는 클래스별로 모든 요소를 클릭하십시오.

분류에서Dev

"this"jquery를 사용하여 부모 텍스트 데이터 가져 오기

분류에서Dev

jQuery를 사용하여 동일한 클래스 이름을 가진 요소에서 텍스트 가져 오기

분류에서Dev

Selenium python : <ul> 안의 <a> 텍스트에서 <li>를 찾아 클릭하십시오.

분류에서Dev

jQuery를 사용하여 클릭시 부모의 부모 div 숨기기

분류에서Dev

부모 구성 요소를 클릭하면 자식 구성 요소에서 데이터 가져 오기

분류에서Dev

jQuery : 요소를 클릭 할 때 개체 데이터 가져 오기 시도

Related 관련 기사

  1. 1

    jquery를 사용하여 부모 "li"텍스트 가져 오기

  2. 2

    요소 jQuery를 클릭하면 부모 양식 클래스 가져 오기

  3. 3

    jQuery는 내부에 클릭 된 요소를 기반으로 <li>의 ID를 가져옵니다.

  4. 4

    jquery는 부모 li의 텍스트를 자식 li로 가져옵니다.

  5. 5

    부모 요소 클래스를 기반으로 jquery를 사용하여 범위 텍스트 변경

  6. 6

    jQuery-부모를 통해 클래스별로 요소 가져 오기

  7. 7

    jquery-스팬 클릭시 li 내부의 확인란 값 가져 오기

  8. 8

    CKEDITOR-요소를 클릭하면 부모로부터 속성 가져 오기

  9. 9

    jquery .parentsUntil () 또는 parent ()를 사용하여 html 요소의 상위 부모 가져 오기

  10. 10

    javascript / jquery를 사용하여 클릭 한 링크의 텍스트 가져 오기

  11. 11

    JQuery 자식 요소 위로 마우스를 가져가 부모의 CSS를 변경합니다.

  12. 12

    jquery를 사용하여 특정 클래스가있는 li의 인덱스 위치 가져 오기

  13. 13

    jQuery / Javascript는이 클래스가있는 요소를 표시하기 위해 여러 요소의 클래스를 가져옵니다.

  14. 14

    값을 검색하기 위해 요소 호출 방법을 클릭 할 때 jQuery를 통해 선택한 행의 열 값을 가져 오는 방법

  15. 15

    jQuery를 사용하여 <li> 요소의 데이터 속성 값 가져 오기

  16. 16

    JQuery-클래스별로 부모의 부모 가져 오기

  17. 17

    자식 요소 위로 마우스를 가져가 부모의 CSS를 변경 하시겠습니까?

  18. 18

    상위 div 내부의 버튼 클릭시 여러 하위 div 텍스트 가져 오기

  19. 19

    텍스트 요소를 표시하기 위해 요소를 가져 오는 Python 및 셀레늄으로 스크래핑 문제

  20. 20

    Vue-반복 목록의 하위 구성 요소에서 부모 LI에 클래스를 추가합니까?

  21. 21

    JavaScript로 클릭시 텍스트 구성 요소가있는 li 요소 추가

  22. 22

    webdriverio로 요소를 내부에 가져 오기 위해 선택기를 연결하는 방법

  23. 23

    jquery의 ID 또는 클래스별로 모든 요소를 클릭하십시오.

  24. 24

    "this"jquery를 사용하여 부모 텍스트 데이터 가져 오기

  25. 25

    jQuery를 사용하여 동일한 클래스 이름을 가진 요소에서 텍스트 가져 오기

  26. 26

    Selenium python : <ul> 안의 <a> 텍스트에서 <li>를 찾아 클릭하십시오.

  27. 27

    jQuery를 사용하여 클릭시 부모의 부모 div 숨기기

  28. 28

    부모 구성 요소를 클릭하면 자식 구성 요소에서 데이터 가져 오기

  29. 29

    jQuery : 요소를 클릭 할 때 개체 데이터 가져 오기 시도

뜨겁다태그

보관