Search code examples
treeviewyui

YUI 2.9 TreeView


I am able to render a tree using YAHOO.widget.TreeView yui 2.9. Using pre made

tags

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

I am able to get the label i.e Products using 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"); 
    } 
});

I want to insert id of the Products in the html and get the id of label as well. so where should I place id attribute inside

  • or where?


  • Solution

  • I got a solution. I inserted the label element inside the span element that was inside the li element i.e

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

    then using YAHOO.util.Dom I traversed and got the id attribute of label element.

    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) {
    
                    });
                }
            });