cellion
402
2018-04-10 15:26:38
8
972

jQuery 태그 생성 질문입니다.


str = "<h2>hi</h2>";

이런 문자열을 정규식으로 태그부분만 추출하여

array = ['<h2>', '</h2>']; 이런식으로 배열로 생성되고 

이 배열을 foreach 돌려서 각 태그를 jquery 객체로 생성하는데요

$.each(array, function(){
$(array[i]); 

});

$(array[i]); 이런 식으로 생성해 버리면 

$('<h2>'); 는 실제로 <h2></h2> 라는 객체로 생성되고

$('</h2>')는 아예 undefined로 변환 되어 버리더라구요

그냥 <h2>랑, </h2> 두개의 객체로 생성되게 할 수는 없을까요?

0
0
  • 답변 8

  • 20170923
    1k
    2018-04-10 15:32:10

    굳이 jQuery로 하셔야하나요?

    변수(String)으로 받아서 append 하는 형식 사용하셔야 할 것 같네요

    0
  • cellion
    402
    2018-04-10 15:33:37

    @20170923

    jquery 객체로 생성 후에 처리해야할 작업이 존재하여 그렇습니다.


    0
  • ondaa
    3k
    2018-04-10 15:41:24

    없을거 같은데요 ^^;;; 이건 위에 분이 말씀하신것처럼 append 하는 방법을 사용하시는게 좋을 것 같네요 아니면 음... 태그 처럼 안보이게 하는겁니다 나중에 변환시켜주는거죠

    예를들면 < 는 html 특수 문자가 있잖아요 ?? &lt; 였나 ;;; 이걸로 먼저 만들어 준다음 

    랜더링 시킬때 전부 다시 < 나 > 로 만드는거죠

    0
  • 20170923
    1k
    2018-04-10 15:42:07

    아 그렇군요, jquery 객체로는 방법이 없는 것 같습니다

    0
  • cellion
    402
    2018-04-10 15:46:26

    @NoDe

    그렇게 되면 객체 생성이 안되서 의미가...


    답변 감사합니다... 다른길 알아봐야겠네요

    0
  • joeaney
    247
    2018-04-10 16:00:25

    만약에 $('<h2 />')로 객체를 생성해서 해당 객체의 속성이 조작되어야 한다면

    $('<h2 />', {
      className: 'class-blabla',
      text: 'text-blabla',
      href: 'http://blabla'
    })

    위 형식으로 만들면 되고요,

    동적으로 속성이 추가되거나 수정된다면

    let h2Tag = $('<h2 />');
    h2Tag.attr('class', 'insert-class-name');

    이렇게 작업하시면 되는데요. 말씀하신 대로 여는태그와 닫는태그에 대해서 각각의 객체를 만드실 이유는 없는 것 같습니다.

    0
  • cellion
    402
    2018-04-10 16:21:27

    joeaney

    정확히는

    $('<h2>') 태그 내 attribute 검사하면서

    type이 function 인 항목 제거 후

    최초 string에 replace 하는 로직입니다.

    최초 string은 <h2> hi</h2> 였는데 <h2>가 <h2></h2>로 바뀌는 바람에

    <h2></h2>hi</h2> 이런식으로 변경 되어 버립니다.

    0
  • cellion
    402
    2018-04-10 16:37:55

    생성된 태그를 한번 더 정규식으로 추출하여 0번째 인덱스만 채용하여서 해결하였습니다.

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