2012-01-27 75 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

相關問題