2014-09-26 5 views
-1

Я использую следующий скрипт для запуска меню элементов и измерения смещения влево. Моя проблема здесь не в каждом элементе, который будет содержать «ul», который я ищу. Я пробовал смотреть через ul и ударять родителя, но это никогда не срабатывало правильно. Затем я попытался измерить длину и не идти. Я также пытался сравнить с «неопределенным». Я полностью тупик, я делаю что-то глупое, и я просто не вижу, как прошло очевидное.Проверьте, не определено ли jQuery .find() при использовании внутри .each()

$('#nav ul.nav-tier-2 li').each(function(){ 
     var leftQ = $(this).find('ul').offset().left; 
    //Extra code below 
} 

Пример из HMTL

<nav id="nav"> 
    <ul class="nav-tier-1"> 
    <li> 
    <a>Link Text</a> 
    <ul class="nav-tier-2"> 
     <li> 
     <a></a> 
     <ul class="nav-tier-3"> 
      <li><a> Last link</a></li> 
     </ul> 
     </li> 
    </ul> 
    </li> 

+2

'вар $ уль = $ (это) .find ('уль'); if ($ ul.length === 1) {/ * found * /} ' – nnnnnn

+0

' if ($ (this) .find ('ul'). length> 0) {... ' –

+0

Вы не читаете описание вопроса? Он сказал, что уже пытался измерить длину. – Kosmog

ответ

0

Без примера HTML структуры это догадка, но она будет вырезать дополнительный поиск и избежать потомок UL S, которые не существуют :

Примечание: первый селектор более конкретный (с использованием селектора для детей >), чтобы исключить включение ИИ внуков. Вам может потребоваться настроить это, у вас много уровней.

$('#nav ul.nav-tier-2 > li ul').each(function(){ 
     var leftQ = $(this).offset().left; 
    //Extra code below 
}); 

JSFiddle: http://jsfiddle.net/TrueBlueAussie/7xkdeq16/

+0

Я пробовал это, но поздно, когда я пытаюсь настроить целевой родительский «li», он, кажется, находит его – TheHamstring

+0

@TheHamstring: я добавил отсутствующие скобки и сделал JSFiddle для вас :) Консоль показывает значение «leftQ» '88' при запуске в Chrome. –

Смежные вопросы