2015-01-26 2 views
3

Текущий метод, который я пытаюсь использовать, выдает ошибку [object HTMLHeadingElement], и теперь я полностью тупик. Я хотел бы добавить HTML-теги к элементам, которые я получил от моего файла XMLДобавление тегов к элементам, полученным из XML

вот мой код до сих пор

$.ajax({ 
url:'xml/feed.xml', 
dataType: 'xml', 
success: function(data) { 
    $(data).find('channel item').each(function() { 
     var title = $(this).find('title').html(); 
     var link = $(this).find('link').text(); 
     var description = $(this).find('description').text(); 
     var pubdate = $(this).find('pubdate').text(); 
     var guid = $(this).find('guid').text(); 

     var h1Title = document.createElement('h4'); 
     var linktext = document.createTextNode(title); 
     h1Title.appendChild(linktext); 

     $('.timeline ul').append(
      $('<li />', { 

       text: h1Title 

      }).addClass('myBox') 
     ); 
    }); 
}, 
error: function() { 
    $('.timeline').text('Failed to get the feed'); 
} 

});

ответ

2

Вы создаете DOM элемент, а затем установить его как текст, эффективно преобразование узла DOM в строку, а строка представление H* элемента [object HTMLHeadingElement]

var h1Title = document.createElement('h4'); 

$('<li />', { 
    text: h1Title // you can't set a DOM node as text 
}) 

вы, вероятно, хотели сделать что-то больше похожа на

var h1Title = $('<h4>', {text : title}); 

$('.timeline ul').append(
    $('<li />').append(h1Title) 
}).addClass('myBox')