De alguna manera una función toma el texto que encuentre entre las etiquetas <li> y </li> y lo muestra en un organigrama, si tuviera <li><ul><li></li></ul></li> la funcion es capas de identificar la estructura y crear el organigrama de los niveles segun listas encuentre.
Bueno aqui mi problema es que, como comento, el texto que encuentre entre <li></li> lo toma, pero lo toma algo asi como texto plano, es decir si yo pongo alguna etiqueta a este texto simplemente la "desecha", por ejemplo:
Código HTML:
<li> nivel <b>1</b><br /> <b>nombre del nivel</b> </li>
Y pues por requerimientos necesito poder darle cierto formato a ese texto.
La parte de la funcion que hace el cambio o toma el texto es esta:
Código Javascript:
Ver original
$.fn.orgChart = function(options, $appendTo) { var opts = $.extend({}, $.fn.orgChart.defaults, options); return this.each(function() { $this = $(this); var $container = $("<div class='" + opts.chartClass + "'/>"); //aca busca el contenedor de las listas if($this.is("ul")) { buildNode($this.find("li:first"), $container, 0, opts); //pregunta si es el primer li y le asigna la funcion builNodes } else if($this.is("li")) { //si no es el primer li, le asigna la misma funcion pero con otros parametros buildNode($this, $container, 0, opts); } $appendTo.append($container); }); }; $.fn.orgChart.defaults = { depth : -1, stack : false, chartClass : "orgChart", hoverClass : "hover", nodeText : function($node) {return "";} }; function buildNode($node, $appendTo, level, opts) { var $table = $("<table cellpadding='0' cellspacing='0' border='0'/>"); var $tbody = $("<tbody/>"); // Make this node... var $nodeRow = $("<tr/>").addClass("nodes"); var $nodeCell = $("<td/>").addClass("node").attr("colspan", 2); var $childNodes = $node.children("ul:first").children("li"); if($childNodes.length > 1) { $nodeCell.attr("colspan", $childNodes.length * 2); } [B]var $heading = $("<h2>").text(opts.nodeText($node));[/B] //aqui creo que es donde toma el texto lo guarda en la variable heading [B]$nodeDiv = $("<div>").addClass("node").append($heading);[/B] //aqui al texto lo asigna a un div y a este le pone la clase que lo muestra como una cajita $nodeCell.append($nodeDiv); //aca me supongo que dibuja las lineas que conectan las cajitass $nodeRow.append($nodeCell); $tbody.append($nodeRow); ...
Bueno a mi poco conocimiento y mi entender creo que en estas lineas esta el asunto
var $heading = $("<h2>").text(opts.nodeText($node));
$nodeDiv = $("<div>").addClass("node").append($heading);
heading es el texto "en plano" entonces .text quita las etiquetas o como??
si alguien me puede dar su punto de vista se los agradeceré infinitamente