그래비
85
2016-07-19 13:17:50
4
1772

자바스크립트, 자바쿼리로 html 태그 컨트롤 질문


예시)

<p>

  내용@@@@@@

  <br>

  내용@@@@@@

  <br>

  <br>

  내용@@@@@@

  <br>

  <br>

  <br>

  내용@@@@@@

  <br>

  <br>

  <br>

  <br>

  내용@@@@@@
</p>


<p>태그안에 해당예시와 같은 내용이 들어있을때 <br>태그가 연속해서 3번이상 들어간 경우만 골라서 css를 적용시키던가 <br>태그 개수를 컨트롤 해주고 싶습니다.

현재 사용해본 방법은 br태그만 replace를 이용해 \n으로 바꿔준 뒤 정규표현식으로 \n이 여러번 들어간 곳을 찾아 다시 <br>태그로 바꿔주려 했지만 <br>을 텍스트로만 인식해서 실패...(p태그 안의 내용은 val()이 아니라 text()로 존재하더라구요)

<br>태그 다음값이 텍스트인지 다시 <br>태그가 나오는지 혹은 <br>태그 사이에 텍스트가 있는지 없는지를 판별하고 싶지만 제이쿼리 API를 아무리 뒤져봐도 적당한게 없더라구요

혹은 해당 내용을 라인단위로 끊어 배열에 저장한 뒤 배열의 내용끼리 비교해보는건 어떨까 했는데 배열로 저장하는방법도 모르겠고 이것도 마찬가지로 <br>태그를 텍스트로 인식해 버릴거 같아 시도하지 못했습니다. 어떻게 하면 좋을까요?

* 예시는 예시일 뿐이고 실제로 제가 다룰 문서는  <br>태그가 정해진 형식이 아닌 랜덤으로 몇개가 나올지 언제나올지 알 수가 없습니다. 예를 들어 몇번째 <br>태그만 골라서 지워야지! 이게 안된다는 겁니다.

0
  • 답변 4

  • Baobab tree
    158
    2016-07-19 13:29:21

    $('p')로 하시면 아마 html dom 객체 형태로 내용이 돌아올겁니다.

    그 뒤에 find랑 each 쓰셔서 찾으시면 될 것 같은데요.

  • 그래비
    85
    2016-07-19 13:42:17
    ㄴfind와 each도 사용해보려고 했으나 어떤식으로 사용해야 할지 모르겠네요 ㅎㅎ find는 모든 태그를 다 찾아버리고 each는 요소만을 찾기때문에 <br>사이의 값이 있는지 없는지 여부를 판단하기 위해서는 다른 방법이 더 필요할 것 같다고 생각해서 포기했습니다. 그리고 요소를 선택하는 함수라면 굳이 html객체로 불러오지 않고 써도 되지 않나요? 아, 그리고 문서는 예시일뿐이고 <br>은 정해진 형식이 아닌 랜덤으로 몇개가 나올지 언제나올지 알 수가 없습니다.
  • Baobab tree
    158
    2016-07-19 14:12:04

    그러면 이렇게 해보시죠.

    위의 코드에서라면 $.parseHTML($('p').html())로 하시면 Dom tree배열이 리턴될겁니다.

    이 배열 보시고 br이 어디서 나오고, 연속되는지, 연속된다면 얼마나 연속되는지 여부를 아실 수있을 겁니다.

    갯수를 세어야 한다면 간단한 counter가 필요하겠죠.


  • 그래비
    85
    2016-07-21 11:08:31

    ㄴ.html()을 이용해서 다른방식으로 해결은 했습니다.

    알려주신 방법도 좋아보이네요 이 방법 사용해서도 해결해 보겠습니다. 감사합니다~

  • 로그인을 하시면 답변을 등록할 수 있습니다.