>  기사  >  웹 프론트엔드  >  ie7에서 failure_jquery에 추가를 발생시키는 jquery 선택기 문제에 대한 솔루션

ie7에서 failure_jquery에 추가를 발생시키는 jquery 선택기 문제에 대한 솔루션

WBOY
WBOY원래의
2016-05-16 15:20:401256검색

1, 다음과 같은 HTML 조각이 있습니다

코드 복사 코드는 다음과 같습니다.

b202679893af10b13116a800f6b4ec3b b3cb001ffa23a62d3d148e67f026e3f1 4e058a42de464313a26fbdf30794c783
a6bc3aa9b9f7e448d437c72fce8c9236
6d8f77f305711cf5252ab2e529250bda
020f20ce17f6305b909a1f285ba64f8f 16b28748ea4df4d9c2150843fecfba68
16b28748ea4df4d9c2150843fecfba68



2. jquery를 사용하여 tbody 아래의 내용을 동적으로 채웁니다.

코드 복사 코드는 다음과 같습니다. $("#pending 테이블 tbody").empty().append(th).append(html);


이 코드는 ie7 이하 버전에서 문제가 있습니다. 즉, jquery는 올바른 DOM 위치를 찾을 수 없으며 #pending 테이블 tbody를 통해 콘텐츠를 추가할 수 없습니다. 수정이 필요한 코드는 다음과 같습니다

코드 복사 코드는 다음과 같습니다. $("테이블 tbody").empty().append(th).append(html);


#pending을 제거하고 table tbody를 통해 직접 dom을 찾습니다
3. 한동안 혼란스러웠습니다. 캐스케이딩 선택기가 매우 일반적인데 IE7에서는 왜 이런 문제가 발생합니까? jquery 버그인가요? 아니면 div 아래에 중첩된 테이블 tbody의 HTML 작성 방법이 표준이 아닌 것인가요?

계속 추가하겠습니다:

IE에서 jquery Append 사용 시 주의사항

수정(아래):
$(document).ready(function() {
   $.ajax({
     url: 'Cutepage.htm',
     dataType: 'json',
     data: 'type=Init&PageSize=' + EachPage + '&PageIndex=1',
     success: function(msg) {

      //在IE7下无法显示,在火狐下没有问题。。。。。
      $('#Content').append('<tr><td width="19%"> 商品编号</td><td width="15%">商品名字</td><td width="20%">供应商商编号</td><td width="30%">商品种类编号</td><td width="10%">单价</td></tr>');

     },
    error: function(x) { alert("服务器错误代码:" + x.status); $('#Loading').hide(); }
   });
 });

컨텐츠를 매개변수에 복사하세요. HTML 컨텐츠를 직접 사용하지 마세요.
$(document).ready(function() {
   $.ajax({
     url: 'Cutepage.htm',
     dataType: 'json',
     data: 'type=Init&PageSize=' + EachPage + '&PageIndex=1',
     success: function(msg) {

      //修改后...(这样就没有问题了,可以看出Jquery对html标签是比较敏感的,以后需要注意........) 
      var pageContent = '';  
       pageContent += '<table border="2">';
       pageContent += '<tr><td width="19%"> 商品编号</td><td width="15%">商品名字</td><td width="20%">供应商商编号</td><td width="30%">商品种类编号</td><td width="10%">单价</td></tr>';
       pageContent += '</table>';      
       $('#Content').append(pageContent );

     },
    error: function(x) { alert("服务器错误代码:" + x.status); $('#Loading').hide(); }
   });
 });

jQuery의 추가 메소드는 연결과 같은 HTML 속성을 지원하지 않습니다

나는 매우 우울합니다. 오늘 프로그램을 작성하고 있는데 문서 객체에 일부 HTML을 추가하려고 합니다. a4b561c25d9afb9ac8dc4d70affff419e388a4556c0f65e1904146cc1a846bee와 같은 문제는 전혀 없지만 다음과 같은 링크가 있는 HTML을 발견했습니다. 🎜>

코드 복사

코드는 다음과 같습니다. $("#test").append("771ffaf5277073360b429b7cfaa0dd37테스트>");

파이어폭스는 문제가 없는데, IE6, IE7, IE8이 멈췄고, 아무런 연결도 없이 텍스트 내용만 표시됩니다. 구글을 준비하고 있었는데 더 이상 Google.com에 로그인할 수 없다는 걸 알게 됐어요. 기본적으로 Google.cn에서 찾은 페이지는 수집 사이트의 정크 기사로 가득 차 있어서 매우 우울했습니다. 오랫동안 작업한 결과 jQuery 자체의 추가 기능에 문제가 있다는 기사를 발견했습니다. 이 기능에는 HTML 구문 분석 및 분석과 유사한 자체 명령문이 있지만 기본 html은 괜찮지만, 링크나 태그가 발생합니다. 완전히 닫히지 않았거나 사용자 정의된 태그인 경우 jQuery는 해당 태그를 인식할 수 없습니다. 정말 그런 것인지는 모르겠습니다. 제가 가지고 있는 js 라이브러리는 압축된 버전입니다. 너무 늦었고 머리가 어지러워져서 더 이상 Laoshizi의 소스 코드를 보고 싶지 않습니다. 다음과 같이 a 태그의 요소를 생성하고 직접 삽입하면 됩니다.

코드 복사

코드는 다음과 같습니다. $(document.createElement('a')).attr({"href":"#", "id": '#mylink'}).appendTo("#test");

그런 다음 다음 링크에 콘텐츠를 첨부하세요.

코드 복사

코드는 다음과 같습니다. $('#mylink').text("테스트");
이봐, 피곤해? 어쨌든 난 자러 갈게. 내일 시간이 나면 jQuery의 소스 코드가 어떻게 작성되는지 살펴보자.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.