2011-05-10 5 views
2

나는 (PHP file_get_contents() 명령을 통해) 외부 웹 페이지의 전체 HTML 내용을 가져 와서 해당 HTML을 javascript 변수로 전달하기 위해 PHP와 ajax 명령을 사용하고 있습니다. 해당 변수의 HTML 내용을 사용하여 이제 &을 선택하여 해당 변수 내의 특정 요소를 추출하려고합니다. 예 : .filter() 함수를 사용해 보았습니다.jQuery : .filter()가 예상보다 적은 수의 요소를 반환합니까?

$(myHTML).filter('#someID').doStuff(); 

그러나 .filter() 명령은 내 선택을 정확하게 필터링하지 않는 것 같습니다.

그것은 어떤 경우

$(myHTML).filter('title').text(); 

에서 작동 아직 여러 요소를 선택하려고 할 때 작업 표시되지 않습니다. 나는 모든 <div> 또는 <a> 태그의 수를 얻기 위해 시도하는 경우 는 예를 들어,이 예에서는 75 <a> 태그가 비록

alert($(myHTML).filter('a').length) 

제로가 계속.

<div> 태그를 모두 계산할 때도 마찬가지입니다. 위의 코드는 0을 반환합니다.

아무도 왜 이런 일이 일어나고 있으며 문제를 해결하기 위해 무엇을 할 수 있는지 설명 할 수 있습니까?

+1

질문을 읽기가 어려웠으므로 포맷을 변경했습니다. 8 ^) – mcgrailm

답변

5

필터는 필터링 된 최상위 요소 만 반환하며 하위 요소는 통과하지 않습니다. 대신 find()를 사용하십시오.

+4

새로운 jQuery 코더에 대한 일반적인 문제는 ['.find()'] (http://api.jquery.com/find/)의 차이점입니다.), ['.filter()'] (http://api.jquery.com/filter/) 및 ['.children()'] (http://api.jquery.com/children/). – Orbling

+1

@Orbling : 링크를 이용해 주셔서 감사합니다. 내 전화기에서 버스에 집착하고있어 터치 스크린에 특별한 기능을 추가하는 것은 쉽지 않습니다. :) – DarthJDG

+0

예, 대다수의 사람들이 가지고있는 것 같습니다. 일반적으로 링크를 제공하는 데 문제가 있습니다. 아마 그것은 당신을 늦추고 사람들은 당신 앞에 게시하게 될 것입니다. – Orbling

관련 문제