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);
...