2014-01-24 5 views
1

Я хочу проверить наличие определенного узла и выполнить определенный набор инструкций. У меня есть два текстовых элементов в файле XML, например, часть файла XML является:Как проверить, существует ли узел с jQuery?

<text transform="matrix(1 0 0 1 818.252 302.8809)"> 
    <tspan x="0" y="0" font-family="'Arial-BoldMT'" font-size="14.7311">INLET</tspan> 
    <tspan x="-4.867" y="15.401" font-family="'Arial-BoldMT'" font-size="14.7311">FILTER</tspan> 
</text> 

<text transform="matrix(1 0 0 1 792.9395 64.6396)" font-family="'Arial-BoldMT'"font-size="14.7311"> 
    COMPENSATOR 
</text> 

Уведомление один узел имеет tspan обернутый внутрь, а другой нет. Я хочу сделать оператор if, который проверяет узел tspan и возвращает текст внутри, а также возвращает текст внутри текстового узла. Как выглядит выражение if?

ответ

1

Есть примечания для всего кода, поэтому его должно быть легко понять!

Live demo (click).

//find all "text" nodes 
var $texts = $('text'); 

//loop through each "text" node 
$texts.each(function(i, elem) { 
    //make a jQuery object from the node 
    var $text = $(elem); 
    //look for "tspan" children 
    var $tspans = $text.children('tspan'); 
    //if there are any children 
    if (!$tspans.length) { 
    //get the "text" node's text 
    var text = $text.text(); 
    console.log('No tspan: '+text); 
    } 
    else { //if there are children tspans 
    //loop through each tspan 
    $tspans.each(function(i, tspan) { 
     //make a jQuery object from the tspan 
     var $tspan = $(tspan); 
     //get the tspan's text 
     var text = $tspan.text(); 
     console.log('From tspan: '+text); 
    }); 
    } 
}); 
Смежные вопросы