자바 스크립트에서 다음 문자열이 있습니다.prototype에서 일치하는 문자열
str = '<a href="/display/1">This is link</a>';
위의 문자열에서 "This is link"
을 얻고 싶지만 성공하지 못했습니다.
str.innerHTML
하지만 정의되지 않은
자바 스크립트에서 다음 문자열이 있습니다.prototype에서 일치하는 문자열
str = '<a href="/display/1">This is link</a>';
위의 문자열에서 "This is link"
을 얻고 싶지만 성공하지 못했습니다.
str.innerHTML
하지만 정의되지 않은
점점 문자열은 DOM의 객체가 아닌했습니다. - str
변수는 문자열이며 innerHTML 속성은 DOM (문서 객체 모델) 노드에만 존재하므로이 방법을 사용하려면 먼저 innerHTML 속성으로 변환해야합니다.
var div = document.createElement('div');
div.innerHTML = str;
var domNode = div.firstChild;
var textYouWant = domNode.innerHTML;
또는 jQuery로
는$(str).html();
PrototypeJS에서는 stripTags()
기능을 사용할 수 있습니다 :
'a <a href="#">link</a>'.stripTags();
// -> 'a link'
'a <a href="#">link</a><script>alert("hello world!");</script>'.stripTags();
// -> 'a linkalert("hello world!");'
'a <a href="#">link</a><script>alert("hello world!");</script>'.stripScripts().stripTags();
// -> 'a link'
프로토 타입의 stripTags()
일을하지만, 귀하의 요구 사항에 따라 당신은 할 수있다 실제로 모든 HTML 태그를 제거하고 싶지는 않습니다. 예를 들어 태그 안에 태그가있는 경우 stripTags()
태그도 제거됩니다. 다음은 정규 표현식을 사용하여 일반 자바 스크립트에서 그것을 할 거라고 방법은 다음과 같습니다
function textFromLink(linkText) {
return linkText.replace(/.*<a[^>]*>\s*(.+)\s*<\/a>.*/, '$1');
}
위의 기능은 태그 내에 다른 태그를 건드리지 않고, 공백의 손질 태그의 내용을 반환합니다.
오. 그래서이 답변은 순수한 자바 스크립트에 무엇입니까? – Awan
jQuery에서 더 간단하지만, 여기서는 프레임 워크가 없습니다. - $ (str) .html()'(미안하지만, 프로토 타입 사용자가 아닙니다) – tobyodavies
은 Element 클래스와 유사합니다. http : // api .prototypejs.org/dom/요소/새 / – tobyodavies