2011-02-05 69 views
1

在我的HTML我有這樣的事情如何將JavaScript對象轉換爲YUI 3節點?

<input type="button" value="Delete" onclick="delete(this);"/> 

和JavaScript文件中我定義我的「刪除」功能是這樣的:

YUI().use('node', functioin(Y) { 
    function delete(el){ 
     //Here is the problem 
     el.get('parentNode'); 
    } 
} 

的問題是,我要轉換的「厄爾尼諾「對象(這是一個普通的JavaScript對象)到一個節點YUI 3,這樣我可以更方便地使用YUI 3的功能。我不知道該怎麼做。

解決方案是什麼?

+0

OK,我找到了答案這裏的http:/ /stackoverflow.com/questions/4892051/how-can-i-normalise-a-javascript-object-to-a-dom-element-with-yui3 – Peacemoon 2011-02-05 16:37:55

回答

3

YUI 3的Y.Node構造可以簡單地在一個DOM元素或選擇字符串,並返回一個新Y.Node實例:

// returns a Y.Node instance wrapping a div DOM element 
var node = new Y.Node(document.createElement('div')); 

,首選的方法是使用便捷Y.one工廠方法:

// returns a Y.Node instance wrapping a div DOM element 
var node = Y.one(document.createElement('div')); 

此外,銳3具有Y.NodeList類表示Y.Node實例的集合:

// returns a Y.NodeList representing all divs on the page 
var divs = new Y.NodeList(document.getElementsByTagName('div')); 

// or using the convenient Y.all NodeList factory method: 
divs = Y.all(document.getElementsByTagName('div')); 

// …and finally the preferred way to do this using a selector string: 
divs = Y.all('div'); 

在一般,使用Y.oneY.all分別重新運行Y.NodeY.NodeList實例;這就是你將看到的YUI 3代碼的寫法,以及所有示例將使用的內容。

對於想去除您已經持有的引用的DOM元素,你可以做以下使用YUI 3的Y.Node類的具體使用情況:

// assumes el is a DOM element reference 
Y.one(el).remove();