2012-01-27 1 views
2

Я немного задал вопрос и получил полезный совет. Я пытаюсь сделать сортируемый список, который позволяет пользователю добавлять URL-адрес YouTube в список. Я его установить, чтобы взять на себя идентификатор и поместить его в массив, я тогда хочу, чтобы использовать следующий JavaScript для добавления URL видео и «кия» ссылка на список:jQuery, объект не имеет метода 'innerHtml'

_videoId = _videoUrl.replace(/^[^v]+v.(.{11}).*/,"$1"); 
//place the Videoid in an array 
_videoList[_videoList.length] = _videoId; 
var $new_element = document.createElement('li'); 
//set the id of the li element to match it's position in the array 
var refId = _videoList.length; 
$new_element = $('li').attr('id', refId); 
var $link = $('a') 
.attr('href', _videoUrl) 
.innerHtml(_videoUrl) 
.data('refId', refId) // add parent li's id for reference in click event 
.appendTo($new_element) 
.bind('click', function(){ 
    cue($link.data('refId')); 
    return false; // prevent browser's default click event 
}); 

$new_element.appendTo(container); 

Однако он дает меня ошибка (в хроме)

Object [объект Object] не имеет метод 'innerHtml'

мой HTML выглядит следующим образом:

<div id="hostPanel"> 
     <div id="videoList"> 
     <ul id="sortable"> 

     </ul> 
     </div> 

Любая помощь при получении этого на работу может быть приятной.

ответ

4

innerHtml - свойство DOM-элементов, а не метод объектов jQuery. Вместо этого используйте html().


Edit:

Касательно комментария:

$new_element = $('li').attr('id', refId); 

Это не создает новый <li> -элементные, он принимает существующие <li> -элементов внутри документа.

Чтобы создать новый элемент в JQuery использовать

$new_element = $('<li/>').attr('id', refId); 

Это то же самое здесь:

var $link = $('a') 

... должен быть

var $link = $('<a/>') 

Не смешивать JQuery и Javascript (DOM)

Thi s является JavaScript (DOM), -ходовой создать элемент:

var $new_element = document.createElement('li'); 

JQuery ожидает, что разметку для $() в то время как DOM-метод createElement() ожидает тэгу в качестве параметра.

+0

Да, это остановило ошибку, однако новый элемент списка не отображается. Я немного новичок в JS и JQuery. Так что простите меня, если я задам простые вопросы. –

+0

@ user1126921: См. Мой отредактированный провод –

+0

Спасибо большое! Работает отлично! –