IE7 에서 jQuery 동적 조작 사용 name 문제 해결

5472 단어 jqueryname
질문:IE7 에서 Jquery 동적 동작 페이지 요소 의 name 속성 을 사용 할 수 없습니다.
프로젝트 에 문제 가 발생 하면 일부 고객 의 기 계 는 가끔 있 고 배경 에서 프론트 데스크 의 데이터 값 을 찾 지 못 한다.
그러나 개발 과 테스트 환경 은 항상 문 제 를 재현 할 수 없다.아버 지 를 속 이 는 것 은 바로 여기에 있다.재현 하지 못 하면 테스트 를 할 수 없고 고 친 후에 도 이런 문제 가 있 을 지 알 수 없다.
생각해 보면 고객 환경 과 유일 하 게 다 를 수 있 는 것 은 js 캐 시 문제 일 수 있 습 니 다.그리고 모든 js 파일 이 인용 한 곳 에 현재 시간 파 라 메 터 를 추가 하 는 것 입 니 다.그러나 문 제 는 여전히 존재 합 니 다.
원래 규정된 버 전이 IE8 이기 때문에 버 전 호환성 문제 가 있 을 거 라 고 는 생각 하지 못 했 습 니 다.우리 가 사용 하 는 것 은 jquery,jqeruy 의 등장 은 브 라 우 저의 호환성 문 제 를 해결 하기 위 한 것 이 라 고 불 리 는 것 이 아 닙 니까?
빌어먹을 문제,진짜 버 전 문제.일부 페이지 는 IE8 의 호 환 모드 를 사용 해 야 하기 때문에 호 환 모드 는 바로 아래 호 환 과 같 습 니 다.그것 은 IE7 을 호 환 하 는 것 이 아 닙 니까?
그래서 로 컬 에서 demo 로 테스트 를 해 봤 습 니 다.

<form id="form1" runat="server">
  <div id="div">
   <input id="input" name="1" value="123" />
  </div>
 </form>
 <script src="jquery-1.6.4.min.js"></script>
 <script>
  $("#input").attr("name", "myname");
  alert("name:" + $("#input").attr("name") + "***html:" + $("#div").html());
 </script>
IE8:

ok!
IE8 호 환 모드:

??왜 $("#input").attr("name")는 수 정 된 값 을 얻 었 고$("#div").html() 는 name 을 얻 었 습 니까?아니면 원래 의 값 을 얻 었 습 니까?
F12 생 성 된 html 보기

submitName 이 뭐 예요?분명히 name 은 변 하지 않 았 습 니 다.submitName 은 jquery 에서 생 성 되 고 name 을 읽 을 때 도 submitName 의 값 을 직접 읽 어야 합 니 다.
그런데 왜$("#div").html() 에서 가 져 온 값 에 submitName 이 없 습 니까?  저도 jquery 의 html 방법 이 어떻게 이 루어 졌 는 지 모 르 겠 어 요~
프로젝트 의 실현 방식 은 다음 과 같다.

<form id="form1" runat="server">
  <div id="div">
   <input id="input" name="1" value="123" type="text" />
  </div>
  <div id="div2">
  </div>
 </form>
 <script src="jquery-1.6.4.min.js"></script>
 <script>
  //alert("name:" + $("#input").attr("name") + "***html:" + $("#div").html());
  $("#input").attr("name", "myname");
  $("#div2").html($("#div").html());
  var nameVal = $("#div2").find("input[name='myname']").val();
  alert(nameVal);
 </script>
이러 하 다  IE8 과 구 글 브 라 우 저 는 정상적으로 값 을 받 지만 IE8 호 환 모드 에 서 는 값 을 받 지 못 합 니 다.[왜 이렇게 값 을 부여 하 는 지 묻 지 마 세 요.이것 은 demo'와 유사 한'실현 이 고 프레임 워 크 입 니 다.]
해결 방안:
1.jquery 로 name 을 수정 하고 name 에 접근 하 는 것 은 ok 입 니 다.중간 에 submitName 이 생 성 되 었 지만.
2.먼저$("#div2").html($("#div").html()); 하고 수정 할 수 있 습 니 다.attr("name", "myname");3.html 를 직접 연결 할 수 있 습 니 다.    $("#div").html("<input id="input" name="myname" value="123" type="text" />")마지막 으로 바 이 두 에서 IE7 은 document.getElementsByName()으로 js 동적 생 성과 수 정 된 name 값 에 접근 할 수 없습니다.
총결산
위 에서 말씀 드 린 것 은 IE7 에서 jQuery 동적 조작 name 문 제 를 해결 하 는 것 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기