2010-08-05 6 views
2

에 이상한 innerHTML을 결과를 제공 내에 중첩, jQuery를 내가 기대 역할 :사업부는이 IE 8에서는 파이어 폭스

파이어 폭스에서
$('div',$('<a><div></div></a>')).html('test').html() 
"test" 

는 :

$('div',$('<a><div></div></a>')).html('test').html() 
"<a>test</a>" 

내가 원하는 것을 주위에 앵커를 넣습니다. 아무도 왜 이런 일이 일어날 지 알고 있습니까?

편집 : 일반 자바 스크립트 (예 : innerHTML 설정)로 설정하면 문제가 발생합니다. 그래서 내 진짜 질문은 짐작할 수 있습니다. 파이어 폭스가 내가 설정 한 것을 왜 변경합니까? 이 부분은 일부 비공식적 인 사양입니까, 아니면 버그입니까?

답변

5

주위에 <div> 줄 바꿈이 잘못되었습니다. 어쩌면 파이어 폭스가 즉시 당신을 위해 그것을 수정하고 유효한 HTML을 반환 무엇입니까?

+0

어쩌면, 정적 HTML의 a에서 div를 사용할 수 있습니다. 나는 그것이 동적 인 HTML을위한 여분의 고정 물건을 가지고있다라고하는 것이 불가능하지 않다고 생각한다. 그러나 그것은 별 났던 것처럼 보인다. – Xodarap

+0

나는 파이어 폭스가 당신의 html을 편집 할 것이라고 말하지 않습니다. DOM의 HTML을 정적 html과 다르게 해석 할 수도 있습니다. – hookedonwinter

+1

일부 브라우저 (Internet Explorer, 놀랍게도)에서 제대로 작동 할 수 있지만 유효한 HTML로 만들 것을 권장합니다. 디버깅 및 유효성 검사 시행에있어 귀하의 삶을 편하게 만듭니다. – MunkiPhD

3

글쎄, 파이어 폭스는 아마도 당신이 규칙을 어 기고 있음을 안다.

그러나 .append()을 사용하면 알지 못했습니다.

$('div',$('<a><div></div></a>')).html('').append('test').html(); // give you 'test' 
1

(우리는 당신이 사용하고 DOCTYPE 알고 해달라고로)가 여기에 해당하는 경우 확실하지하지만 <div> 주위 <a>는 HTML5에 완벽하게 유효 포장하지만, 파이어 폭스가 명백히 아직에 속도를 최대 아니다 . 나는 FF4가 될 것 같아요.

1

Firefox 3.6.18 (4.x, 5.x 렌더링 페이지가 올바르게)에서 동일한 문제가 발생했습니다. 내가 올랐던 빠르고 더러운 수정은 < > 안에 <span>으로 모든 것을 감싸는 것이었다.