2010-11-08 2 views
1

Следующий фрагмент кода HTML и JQuery работает в:. Firefox, Safari и Chrome, и в последних обновлениях производства OSX и XP (все браузерыappendTo и удалить не работает в IE8

Я использую Java отладчик в Safari, Firefox и IE8

Но в IE8, содержимое КТС не перемещается !! у меня нет IE6 или IE7, чтобы проверить с

<html> 
<head> </head> 
<body> 
    <div class="AAA"> 
     <div class="BBB"> </div> 
    </div> 

    <div class="CCC"> 
     <div id="0"> <img src="image/..." /> </div> 
     <div id="1"> <img src="image/..." /> </div> 
    </div> 
</html> 

код JQuery находится в отдельном файле.:

jQuery(window).load(function() { 
    // move div's contained within class="CCC" to class="BBB" 
    $('.CCC div).each(function() { 
     $(this).appendTo('.AAA .BBB'); 
}); 

По завершении этой функции класс «CCC» не будет содержать контент.

Я также попытался удалить. Я получаю те же результаты в IE8 (не работает).

После выполнения строки «var temp» каждый div в цикле должен быть удален. Я просматриваю «html view» отладчика, чтобы проверить это.

$(.CCC div).each(function() { 
    var temp = ('.CCC div:eq(0)').remove(); 
    temp.appendTo('BBB'); 
}); 
+0

Этот код копирует/вставляет или перепечатывает, поскольку существует много опечаток. В вашем первом сегменте jQuery вы выполняете оператор селектора, но не завершаете строчную константу $ ('. CCC div) <- missing' before). Во втором блоке у вас нет строки вообще в самом удаленном селекторе и маркер jQuery ($) во внутреннем селекторе. –

ответ

1

я думаю, что вам не хватает $

var temp = $('.CCC div:eq(0)').remove(); 
+0

Да, это была опечатка в этом посте. $ Находится в моем коде. В противном случае он не работал бы в других браузерах. – barryg

+0

исправить свой код, чтобы мы могли отлаживать проблему. – Patricia

0

Вы хотите, чтобы это сделать, когда документ будет готов и не на окна нагрузки. Кроме того, console.log в любом месте вашего кода будет «убивать» JS, если вы используете Firefox без Firebug и, вероятно, (хотя я не уверен) IE.

 
$(document).ready(function() { 
    // move div's contained within class="CCC" to class="BBB" 
    $('.CCC div').each(function() { 
     $(this).appendTo('.BBB'); //.AAA is not necessary if you want to append to all instances of .BBB 
}); 
+0

Что вы подразумеваете под "console.log will 'kill' JS"? Я все время использую console.log без проблем. – Hollister

+0

Так зачем нам $ (window) .load() for? Иногда вы хотите манипулировать фотографиями. Например, вы хотите вертикально и горизонтально выровнять изображение, и для этого вам нужно получить ширину и высоту изображения. С $ (document) .ready() вы не сможете этого сделать, если посетитель не имеет уже загруженного изображения, и в этом случае вам нужно инициализировать функцию выравнивания jquery, когда изображение закончит загрузку. – barryg

+0

Я нашел этот совет: Итак, для чего нам нужно $ (window) .load() for? Иногда вы хотите манипулировать фотографиями. Например, вы хотите вертикально и горизонтально выровнять изображение, и для этого вам нужно получить ширину и высоту изображения. С $ (document) .ready() вы не сможете этого сделать, если посетитель не имеет уже загруженного изображения, и в этом случае вам нужно инициализировать функцию выравнивания jquery, когда изображение закончит загрузку. – barryg