YUI 2.9 TreeView

时间:2013-10-17 12:16:59

标签: treeview yui

我可以使用YAHOO.widget.TreeView yui 2.9渲染树。 使用预先制作的

标签

<ul> <li> Products </li> </ul>

我能够获得标签,即使用node.label的产品

YAHOO.util.Event.on('allProductSaveButton','click',function() { 

    var hiLit = rightProductTree.getNodesByProperty('highlightState',1);

    if (YAHOO.lang.isNull(hiLit)) {  

        YAHOO.log("None selected"); 

    } else { 
        var labels = []; 



        for (var i = 0; i < hiLit.length; i++) {

               var node = hiLit[i];

               if(node.children.length<=0) {

            labels.push(hiLit[i].label); }
        } 
        alert("Highlighted nodes:\n" + labels.join("\n"), "info", "example"); 
    } 
});

我想在html中插入Products的id并获取label的id。那么我应该在哪里将id属性放在

  • 或其中?

  • 2 个答案:

    答案 0 :(得分:0)

    我不确定您是否可以在标记上设置自己的id。 TreeView是YUI 2中最古老的小部件之一,它使用了一个特别有趣的标记,因为那些日子里支持的CSS样式非常可怜,因此,那个有趣的标记的哪一部分你要应用id

    如果你想要的是给树节点一个标识符,你可以在以后用它来检索它,然后使用custom properties。然后,调用getNodesByProperty将允许您通过该额外属性的值检索节点。

    答案 1 :(得分:0)

    我有一个解决方案。我将标签元素插入到li元素内的span元素中,即

     <ul>
        <li> <span> <label id="444" > Product </label> </span>
          </li>
         </ul>
    

    然后使用YAHOO.util.Dom我遍历并获得label元素的id属性。

    YAHOO.util.Event.on('GroupsProductSaveButton', 'click', function() {
                var hiLit = rightProductTree2.getNodesByProperty('highlightState', 1);
                if (YAHOO.lang.isNull(hiLit)) {
                    alert("None selected");
                } else {
                    var labels = [];
    
           for (var i = 0; i < hiLit.length; i++) {
    
                   var node = hiLit[i];
    
                   if(node.children.length<=0) {                
                           labels.push(YAHOO.util.Dom.get(hiLit[i].contentElId).getElementsByTagName('label')[0].getAttribute("value")); }
            }  
                    alert("Highlighted nodes:\n" + labels.join("\n"), "info", "example");
    
                    ProductGroupDWR.displaySelectedNodes(labels, function(data) {
    
                    });
                }
            });