Как я могу захватить элемент внутри в jQuery?

#javascript #jquery

#javascript #jquery — запрос #jquery

Вопрос:

У меня есть следующее <li> — их много, но это всего лишь один пример:

 <li class="ui-li ui-li-static ui-body-d ui-li-has-icon io-sidebar-link io-sidebar-link-standard" data-theme="d" io-sidebar-section="0aa210f2-e811-4bae-aac0-649bf87fb240" io-object-view="/cms?url=ui/objectamp;amp;object=db13a9ad-2494-34bb-8a59-cb99fd308051" io-record-view="/cms?url=ui/recordamp;amp;object=db13a9ad-2494-34bb-8a59-cb99fd308051" style="display: block">
          <img src="/document/423fc17f-08b2-46bb-a1db-a5395cd63b83/latest" class="ui-li-icon ui-li-thumb" height="16" width="16">
          <div class="io-sidebar-link-text">Tasks</div>
        </li>
  

У меня привязано событие щелчка, и я хотел бы распечатать значение io-sidebar-link-text . Как я могу это сделать?

$(this).('.io-sidebar-link-text') я считаю, это неверно.

Ответ №1:

Довольно близко! Используйте $(this).find('.io-sidebar-link-text').text() внутри обработчика щелчков.

$(this).find(xyz) это синтаксический сахар для $(xyz, this) ; поэтому проверьте как документы для первого, так и для последнего.

Комментарии:

1. это html() или text () , а не val(), верно? потому что io-sidebar-link-text это <div>

2. @ric_bfa: Правильно. Мой мозг думал text , но моя клавиатура печатала val !

3. Означает ли «синтаксический сахар», что он заставляет ваш процессор работать тяжелее, или просто молодым разработчикам легче его проглотить?

4. @Matt да, я часто это делаю. 🙂

5.@mblase75: $(xyz, this) [просто вызывает][github.com/jquery/jquery/blob/1.6.4/src/core.js#L168 ] $(this).find(xyz) , так что он сожжет максимум 1 калорию (никогда не слышал, чтобы он так назывался, кстати .. заставил меня смеяться: P)

Ответ №2:

это позволит выбрать только тот элемент, который имеет атрибут io-sidebar-link-text , и получить значение этого атрибута с помощью метода attr()

 var title = $("li[io-sidebar-link-text]").attr("io-sidebar-link-text");
  

Ответ №3:

Если он всегда находится в div:

 $(this).find('div').text();
  

или, если вы хотите выбрать класс:

 $(this).find('.io-sidebar-link-text').text();