2010-04-12 1 views
0
function SwapPlans(city, id) { 
    var tp = GetTravelPlanById(id); 
    var content = MakeHTMLAccordionMe(tp.items[0]); 

    document.getElementById(city).innerHTML = " "; 
    document.getElementById(city).innerHTML = content.innerHTML; 
    document.getElementById(city).outerHTML = " "; 
    document.getElementById(city).outerHTML = content.outerHTML; 
} 

Привет,DOM innerHTML Дубликат Проблема

У меня есть проблемы с выше фрагмента кода. Функция MakeAccordionME возвращает содержимое, которое Я хочу изменить с помощью document.getElementById (city) = value; но он не удаляет первое содержимое первого div.

Есть ли какой-либо метод content.clear в DOM javascript?

thx

с.с. div, возвращающийся из document.getElementById (город), является div-аккордеон jquery.

ответ

1

В DOM (как реализовано браузерами, innerHTML не является стандартным до HTML5, но реализуется всеми) установка innerHTML элемента удалит все содержимое. Разница между innerHTML и externalHTML заключается в том, что для outerHTML включен сам тег. Таким образом, OuterHTML может использоваться для замены тега. Поскольку контент является элементом типа, вы все равно не хотите использовать innerHTML, вы хотите прикрепить его к элементу dom.

Это может работать:

function SwapPlans(city, id) { 
    var tp = GetTravelPlanById(id); 
    var content = MakeHTMLAccordionMe(tp.items[0]); 
    var city = document.getElementById(city); 

    // Remove all children of the div 
    while (city.hasChildNodes()) { 
     city.removeChild(city.children.item(0)); 
    } 

    // Add a child to the city, making sure that it belongs to this document. Instead 
    // of blind importing you might also check it's ownership. 
    city.appendChild(city.ownerDocument.importNode(content)) 
+0

Я получаю сообщение об ошибке: Microsoft JScript ошибка выполнения: Объект не поддерживает это свойство или метод – Kubi

+0

для этого line-> city.appendChild (city.ownerDocument.importNode (content)) – Kubi

+0

Работает ли он в другом браузере? Возможно, вы захотите попробовать хром, у него очень хороший отладчик javascript (хотя IE8 тоже хорош). Для нахождения ошибки вы можете поместить результаты importnode в переменную, а затем добавить эти результаты. –

 Смежные вопросы

  • Нет связанных вопросов^_^