JSFiddle - React, Tailwind, and code Playground

by criptkiller

HTML

<link rel="stylesheet" href="http://t.profebox.com/css/core.css">
<div class="ulList">
    <ul class="ul_romano">
        <li>
            <input type="text" value="numeração romana">
        </li>
        <ul class="ul_normal">
            <li>
                <input type="text" value="um" focus="true">
            </li>
            <li>
                <input type="text" value="dois">
            </li>
            <li>
                <input type="text" value="três">
            </li>
        </ul>
        <li>
            <input type="text" value="Outra numeracção">
        </li>
        <ul class="ul_normal">
            <li>
                <input type="text" value="eehehehehhe">
            </li>
            <li>
                <input type="text" value="ohsahashdsad">
            </li>
            <li>
                <input type="text" value="asdasdsad">
            </li>
        </ul>   
    </ul>                                
 </div>

JavaScript

var $ulList = $(".ulList"),
    arr = [],
    loop = 0,
    ultimoloop = 0;

function isLevelOne ( $obj ){
    if($obj.get(0).tagName == 'LI' && $obj.parent().get(0).tagName=='UL'
       && $obj.parent().parent().get(0).tagName=='UL'){
        return true;   
    }
    return false;
}

function isRoot ( $obj ){
    return $obj.parent().parent().hasClass('ulList');
}

function moreThanOneLevel ( $obj ){
    return $obj.next().get(0).tagName=='UL' && $obj.next().find("li").size()>0;
}

function isIgnoreList ( $obj ){
    return false;
    if($obj.get(0).tagName == 'LI' && $obj.parent().get(0).tagName=='UL'
       && $obj.parent().parent().get(0).tagName=='UL'){
        return true;   
    }
    return false;
}




$ulList.find("li").each(function (){
    
    var $this = $(this),
        $input = $this.find("input"),
        valor = $input.val();
    
    if(isIgnoreList($this)){
        //console.debug('isIgnoreList');
        //console.debug($input);
        //$this.css('border','1px solid green');
    }else if(isRoot($this)){
        
        if(moreThanOneLevel($this)){
            // é porque a seguir o elemento tem mais lis lá dentro
            // portanto temos que fazer um array multidimensional
           
            
           
           arr[loop] = [valor];
            
           /*
            alert(typeof arr);
           alert(typeof arr[loop]);
           alert(typeof arr[loop][0]);
            */
            
           var ultimoValor = valor,
               ultimoloop = loop;
            
            
            
        }else{
            // é apenas para adicionar se ser multimedicional
            arr.push(valor);
            
            
        }
        
        //console.debug('isRoot');
        //console.debug($input);
        //$this.css('border','1px solid red');
    }else if(isLevelOne($this)){
        
        alert(ultimoloop);
        //alert(typeof arr[ultimoloop]);
        //arr[loop].push(valor);
        
       ...