2016-06-04 3 views
0
import jsdom from 'jsdom' 

const virtualConsole = jsdom.createVirtualConsole() 

virtualConsole.on('jsdomError', ({stack, detail}) => console.error(stack, detail)) 

global.document = jsdom.jsdom(` 
    <html> 
    <body> 
     <div id="foo">some text</div> 
    </body> 
    </html> 
`, { virtualConsole }) 

global.window = document.defaultView 
global.navigator = window.navigator 

const elem = document.getElementById('foo') 
console.log('foo text', elem.text()) 

이 나에게 멋진 오류 내가 놓친 게 무엇 JSDOM의 v9.1.0JSDOM 설정에 어떤 문제가 있습니까?

을 사용하고 elem.text is not a function

을 준다?

+1

'.text()'는 어떤 기능을 기대 했습니까? 이것은 jQuery가 아닌 DOM입니다. 대신'elem.innerText' 또는'elem.textContent'를 시도하십시오. – Bergi

+0

'.text()'는 DOM 함수가 아닙니다. 그것은 jQuery 함수입니다. – Tomalak

답변

0

.text()은 주어진 요소의 텍스트 내용을 반환하는 jQuery 메서드입니다. 실제로 JavaScript DOM API의 일부는 아니지만 두렵습니다. .textContent 속성을 사용해보십시오. (MDN link).

const elem = document.getElementById('foo') 
console.log('foo text', elem.textContent) 
+0

하하. 실제로 innerText를 사용했지만 속성 대신 함수로 사용했습니다. 깨워 줘서 고마워. –