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 문 제 를 해결 하 는 것 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jQuery 전후 예이 기사에서는 jquery after() 및 before() 메소드의 예를 볼 것입니다. before() 메서드는 선택한 요소 앞에 지정된 콘텐츠를 삽입합니다. after() 메서드는 선택한 요소 뒤에 지정된 콘텐츠...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.