2017-12-15 23 views
1

JS에 대한 경험이 많지 않습니다. 정말 간단한 문제라고 생각할 것입니다. 그럼에도 불구하고 나에게 당황 스럽습니다. 구문을 이해하십시오.자바 스크립트에서 렌더링 가능한 HTML로 값 반환하기

내가 thusly 히 읽는 조각있어 : 나는 일부 HTML이 추가 갖도록 "라벨"값을 변경하려면

if(typeof item.id !== 'undefined') { 
    return { 
     label: item.name, 
     value: item.name 
    }; 
} 

합니다. 그래서 내 생각과 같이 접근했다 :

if(typeof item.id !== 'undefined') { 
    return { 
     label: <a href="https://example.com/' + item.seo + '/' + item.id + '"><p>' + item.name + '</p></a>, 
     value: item.name 
    }; 
} 

내가 여기 실행 해요 문제는 HTML 그냥 HTML로 렌더링되지 않는, 인쇄하는 것입니다. 그래서 모든 HTML 문자를 포함하는 텍스트 문자열로 끝납니다. 이 문제를 해결하는 쉬운 방법이 있습니까?

답변

1

이것을 수행하는 방법은 [MyElement].innerHTML = ... 또는 $([MyElement]).html(...) (jQuery) 사용자가 볼 수있는 곳에 입력 한 텍스트를 html로 렌더링합니다.

+0

좋아요? 'label : $ (this) .html ('

' + item.name + '

'),'이것은 [object, Object]를 반환합니다. 그래서 저는 여기에서 조금 틀린 것을 생각하고 있습니다. 주로 "this"가 아마 뭔가 있다고 생각합니다. 다른하지만 ​​난 페이지에서 뭔가를 참조하려고하지 않고, 반환 값을 일반 텍스트 대신 HTML로 해석하도록 지정하려고합니다. 생각? – user1709061

+0

@ user1709061 "렌더링 가능 HTML"이란 무엇입니까? HTML은 일반 텍스트이므로 문제가 어디에서 발생하는지 이해할 수 없습니다 – ControlAltDel

+0

죄송합니다. 전문 용어 문제입니다. 기본적으로 인쇄되는 것은 모든 코드를 포함하는 단락 텍스트입니다. 따라서 페이지의 공개 측에서는 실제로 태그 된 태그 대신 실제로 모든 태그를 볼 수 있습니다. 그래서, 글자 그대로

' + item.name + '

이라는 항목 이름이있는 링크 대신에 나타납니다. – user1709061