#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();