2010-07-13 3 views
0

다른 형식으로 필요한 많은 데이터가있는 클래스로 식별되는 div 및 span 태그로 가득 찬 HTML 웹 페이지가 있습니다. 나는 자바 스크립트로 이것을하는 가장 좋은 방법이 될지 궁금했다.자바 스크립트로 HTML 데이터를 얻는 방법

도움 주셔서 감사합니다.

+0

자세한 정보가 필요합니다. 데이터로 무엇을하고 싶습니까? 그것은 어떻게 생겼습니까? 예제가 있습니까? – Skilldrick

답변

3

가장 빠른 방법은 무엇입니까? jQuery :

$(".myClass").each(function() { 
    // work with your data here 
}); 
+0

가장 짧은 방법 일 수 있지만 가장 빠를 수는 없습니다 ... – galambalazs

+0

CPU주기 또는 개발자주기를 최적화하는 경우에 따라 다릅니다. :) 아마 구현이 가장 빠르지 만, 당신이 맞습니다. 가장 효율적인 방법이 아닐 수도 있습니다. –

+0

느린가요? –

0

더 저수준되어야하지만 훨씬 더 빨리 (훨씬 적은 오버 헤드) :

var myelements = document.evaluate('//div[@class=myClass"]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); 
for (var i = 0; i < myelements.snapshotLength; i++) { 
    var dataElement = myelements.snapshotItem(i); 
    // work with your data here 
} 

(좋아, 당신은 (한 번 DIV에 대한 한 번에 두 번해야 할 것 스팬), 코드가 더 많아 보이지 않아 멋지지만 더 빨라야합니다.

0

특정 클래스의 모든 문서를 가져오고 싶다면 다음 중 어떤 것이 있는지 테스트해야합니다. 각 객체의 해당 클래스.

document.getElementByTagName("*") // This should select everything 

을 사용하여 올바른 이름을 검색 할 수 있습니다.

if (regex test == true) { 
    // you found an element that matches 
    // do what you will with it. 
} 

필요한 요소를 찾으면 필요한 것을 수행하십시오. 이제 페이지의 모든 요소를 ​​처리하고 기준에 맞는 요소를 찾았습니다. 행운을 빕니다.

+0

나는 정규식을 읽었고 HTML은 하늘 아래에서 금지 된 조합이다 ... 그래서 어떤 종류의 정규식인가? –

+0

정규식을 사용하여 클래스 이름을 검색해야합니다. 동일한 속성에 여러 개의 클래스 이름을 추가 할 수 있습니다. (ex class = "this that orAnother"; if (className == "this") {}는 전체 문자열이 "this that orAnother"이므로 작동하지 않습니다. – John

관련 문제