2012-01-27 74 views
2

我问了一个问题,回了一些有用的建议。我正在尝试制作一个可排序的列表,允许用户将YouTube网址添加到列表中。我有它设置为取ID,并把它在一个数组,然后我希望它使用下面的JavaScript来追加视频网址和“提示”链接列表:jQuery,Object没有方法'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); 

但是它给我(铬)

对象的翻译:错误有没有方法 '的innerHTML'

我的HTML看起来像这样:

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

     </ul> 
     </div> 

任何帮助这个工作可以很好。

回答

4

innerHtml是DOM元素的属性,而不是jQuery对象的方法。改为使用html()


编辑:

关于到注释:

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

这不会创建一个新的<li> - 元素,它需要在文档中已有的<li> -elements。

要在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有点新鲜。所以如果我问简单的问题,请原谅我。 – 2012-01-27 03:56:59

+0

@ user1126921:查看我编辑过的帖子 – 2012-01-27 04:02:58

+0

非常感谢!完美的作品! – 2012-01-27 04:11:27

相关问题