문제

XML 문서 요소의 내용을 가져오려고 하는데 요소 이름에 콜론이 있습니다.

이 줄은 이름에 콜론이 있는 요소를 제외한 모든 요소에 적용됩니다.

$(this).find("geo:lat").text();

나는 콜론이 탈출해야 한다고 가정합니다.이 문제를 어떻게 해결합니까?

도움이 되었습니까?

해결책

JavaScript를 먹지 않도록 백 슬래시를 사용하십시오.

$(this).find("geo\\:lat").text();

다른 팁

그것은 단순한 요소 이름이 아닙니다.이는 정규화된 이름입니다. 즉, 네임스페이스 내의 요소 유형을 구체적으로 참조하는 이름입니다.요소 유형 이름은 'lat'이고 네임스페이스 접두사는 'geo'입니다.

현재 jQuery는 네임스페이스를 잘 처리할 수 없습니다. 버그 155 자세한 내용은.

지금은 해결 방법으로 로컬 이름만 사용하여 다음 요소를 선택할 수 있습니다.

$(this).find("lat").text();

동일한 로컬 이름을 가진 요소 유형을 구별해야 하는 경우 다음을 사용할 수 있습니다. filter():

var NS = "http://example.com/whatever-the-namespace-is-for-geo";
$(this).find("lat").filter(function() { return this.namespaceURI == NS; }).text();

편집하다: 내 실수로 패치가 이미 출시된 것 같은 인상을 받았습니다.선택기에 대한 Adam의 제안을 사용하고 filter() 네임스페이스도 필요한 경우:

var NS = "http://example.com/whatever-the-namespace-is-for-geo";
$(this).find("geo\\:lat").filter(function() { return this.namespaceURI == NS; }).text();

당신이있는 경우 Chrome 또는 WebKit의 jQuery 선택기 문제 선택하지 않습니다

$(this).find('[nodeName=geo:lat]').text();

이런 식으로 모든 브라우저에서 작동합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top