Несколько проще поставить первый токен из инструкции for-loop в токен без кавычек.
for /f "delims=" %%a in (
' if defined OS "C:\my folder with spaces\consoleapp.exe" /param1:"value" '
)do @echo %%a
Внутри обработчика события hover, this
будет li
, поскольку он присоединен к $('.smenu li')
. Тогда $(this).find('li')
найдет li
элементы inside .smenu li
, которых предположительно не существует.
Возможно это должно быть:
var lid = $(this).attr('id');
просто alert(lid)
и проверьте, содержит ли он значение (скорее всего, в вашем коде его нет).
Ваш текущий код получает id
элемента li
внутри элемента li
.
Очевидно, что if-else
будет работать, если ваш код правильный. Помните, что более вероятно, что вы сделали что-то неправильно, чем то, что в языке есть ошибка ;)
Серьезно, вы должны прочитать несколько учебников и документацию, прежде чем размещать здесь много вопросов. Тогда вы будете знать, что делает find()
и какие элементы выбирает $('.smenu li')
.
Обновление:
Хорошо, специально для вас:
Это ваш HTML
<div class="smenu">
<ul>
<li id="d1">...</li> // #1
<li id="d2">...</li> // #1
</ul>
селектор $('.smenu')
выберет все элементы, которые я отметил
#1
.
Но когда вы применяете .find('li')
к такому элементу, он пытается найти элемент li
внутри элемента li
, т.е. он выберет элементы, которые я отметил #2
здесь:
<div class="smenu">
<ul>
<li id="d1"> // #1
<ul>
<li id="foo">...</li> // #2
</ul>
<li id="d2">...</li> // #1
</ul>
Но это не ваша структура. У вас нет вложенных списков. Вам нужны идентификаторы из элементов #1
, и поэтому это должно быть
var lid = $(this).attr('id');
Может быть, переключатель
- это то, что вам здесь нужно.
Оператор if else - это просто javascript, не имеющий ничего общего с jquery. Это всегда срабатывает. Если это не то, что вы ожидаете, что-то в вашей логике кода неверно.