2012-08-30 4 views
-2

어쩌면 내가 내 질문을 명확하게 설명하지 않았고, 내 질문이 필요하지 않다고 생각한다면 적어도 비슷한 솔루션을 볼 수있는 곳을 보여주십시오!. 필자의 견해로는 IE7 비교 가능성 문제를 다루어야한다.

IE7 (모든 것이 IE8 또는 Chrome에서 잘 보이는)의 jQuery로 기존 테이블 (클래스 = 'a') 뒤에 테이블 개체 (클래스 = 'b')를 삽입하는 방법에 대한 질문이 있습니다. 누구든지 내게 아래의 코드에 대한 제안을 줄 수 있습니까? jQuery IE7의 테이블 뒤에 테이블 개체 삽입

// This is the existing table 
<table class='a' align="center"> 
<tr><th><label for="id_S">Number of modeled stages:</label></th><td><select name="S" id="id_S"> 
<option value="">Please choose</option> 
<option value="2">2</option> 
<option value="3">3</option> 
</select></td></tr> 
</table> //I would like to insert a table class='b' right after this </table> tag 

<script> 
$(document).ready(function() { 

$('<table class="b" border="0" align="center"><tr><th width="5">Matrix:</th></tr></table>').appendTo('.a'); //this works in IE8 but not in IE7 

}) 
</script> 

// The following code works in IE7, but it messed up the layout 

<script> 
$(document).ready(function() { 

$('<table class="leslie" border="0" align="center"><tr><th width="5">Matrix:</th></tr></table>').appendTo('.a td:last'); //this works in IE7, once I changed it to tr:last, it does not work again. 

}) 
</script> 

업데이트 나는 더 간단 케이스를 시도했다. IE7에서 경고 메시지를 볼 수는 있지만 추가 된 테이블 행을 볼 수 없습니다. IE7에서 추가 HTML 표를 보여주지 못했지만 JavaScript 코드를 처리 할 수있는 것 같습니다.

<script> 
$('<table class="b" border="0" align="center"><tr><th width="5">Lesile Matrix:</th></tr></table>').appendTo('.a');  
alert('s') 
</script> 

+0

당신은 "테이블"의 클래스와 테이블이 없습니다. 또한 추가하려고하는 테이블에 대한 테이블 끝 태그가 없습니다. 그게 고칠 수 있니? – ovaherenow

+0

@overherenow : 아니요. 문제가 여전히 존재합니다. –

+0

어둠 속에서 촬영 한 것일 수도 있지만 'tbody'태그에 'tr'태그를 넣으십시오. 그러나 나는 그것을 실제적으로 단순하게 만들 것을 제안 할 것이다. 테이블이 추가되었는지 확인하기 위해 속성이없는 테이블을 추가하는 것일 수도 있습니다. 또한 .append는 테이블을 다른 테이블의 자식으로 만들기 때문에 Abraham이 제안한 'insertAfter'를 사용합니다. 그게 네가 원하는지 모르겠다. – ovaherenow

답변

1

이 시도 :

$('<table class="leslie" border="0" align="center"><tr><th width="5">Matrix:</th></tr></table>').insertAfter('.table'); 
+0

IE7에서는 작동하지 않습니다. –

+0

나중에 자세히 살펴 보겠습니다. – Abraham

0

귀하의 코드를 잘하지 않습니다. 첫째, "table"클래스를 가진 요소가 없습니다. 그래서 appendTo가 작동하지 않는 이유입니다. 클래스에는 "a"가 있습니다. 그런 다음 appendTo에 대해 추가하려는 테이블이 "</table>"으로 끝나지 않습니다. 또한 Abe의 조언을 받아 appendTo를 insertAfter로 변경했습니다.

여기에 체크 아웃 귀하의 고정 코드 :

+0

그 오타가 수정되었습니다. 내 코드는 IE8이나 Chrome에서 작동하지만 IE7에서는 작동하지 않습니다. –

+0

IE7에서 제공 한 코드를 사용해 보셨습니까? – ovaherenow

+0

나는 당신의 접근 방식을 시도했다. 그러나 IE7 모드에서 내 웹 사이트에 대한 insertAfter가 작동하지 않습니다. 비슷한 코드가 IE7에서 열리는 바이올린에서 잘 작동하지만. –

0

http://jsfiddle.net/YUCDf/1/는이처럼 시도? 전체 마크 업을 문자열에 저장하고?

var x = '<table class="b" border="0" align="center"><tr><th width="5">Lesile Matrix:</th></tr></table>'; 
$('.a').append(x); 

http://jsfiddle.net/nVFa5/

+0

테이블의 경우 과 은 같은 행에 있습니다. 따라서을 추가 할 필요가 없습니다. 나는 IE7이 아닌 IE8에서 작동하는 스트링 방법을 시도했다. 감사! –