#jquery
#jquery
Вопрос:
Как вы проверяете, является ли элемент DOM, на который нажимается, ‘первым’ элементом li или ‘последним’ элементом li в элементе неупорядоченного списка??
Комментарии:
1. Вы уверены, что не имеете в виду последний
li
вul
?2. ДА. Я хочу сказать, что. li в ul.
3. Я просмотрел код, который у вас был, прежде чем вы изменили свой вопрос. Является ли щелкаемый элемент
img
вli
?4. ДА. Это img. Я использовал как
$('.item img').click()
Ответ №1:
Основываясь на вашем вопросе в том виде, в каком он появился перед вашим редактированием, а также на ваших комментариях, кажется, что вы реагируете на li img
щелчок и пытаетесь выяснить, является ли это содержащее li
первым или последним дочерним элементом.
Используйте .is()
вместе с .closest()
для проверки:
$('ul li img').click(function() {
var $li = $(this).closest('li');
if ($li.is(':first-child')) {
// First
} else if ($li.is(':last-child')) {
// Last
}
});
Комментарии:
1. нужен ли ‘$’ в ‘$li’?
2. @ptamzz: Нет, для меня просто личное соглашение обозначать переменные jQuery с помощью
$
. Вы можете сказать что-то еще вродеvar li = $(this).closest('li');
и просто использоватьli
в вашемif
иelse if
.
Ответ №2:
попробуйте это:
<ul class="myUnorderedList"><li>First</li><li>Last</li></ul>
js:
$('.myUnorderedList li').click(function(){
if($(this).is(':first')) console.log('first li');
if($(this).is(':last')) console.log('last li');
})
Ответ №3:
Комментарии:
1. как это помогает при нажатии fn?
2. Внутри обработчика щелчков вы могли бы просто сверить объект, на который щелкнули, с первым () или последним() …
3. Вы не можете? Это интересно. Я бы подумал, что объекты jQuery являются одиночными, что означает, что он создаст только один объект-оболочку для элемента DOM. Но поскольку объекты jQuery являются коллекциями, то это на самом деле не имеет смысла.
4. Я смог это сделать, просто нужно использовать [0] после объектов. Проверьте jsFiddle .
Ответ №4:
Если это ваш код:
<ul class="myUnorderedList"><li>First</li><li>Last</li></ul>
Затем вы можете получить к нему доступ с помощью первого селектора (http://api.jquery.com/first-selector /) или последнего селектора (введите описание ссылки здесь) следующим образом:
<script>$(".myUnorderedList>li:first").css("font-style", "italic");</script>
<script>$(".myUnorderedList>li:last").css("font-style", "italic");</script>
Ответ №5:
Возможно, это могло бы помочь
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
С помощью этого кода jquery
$("li").click(function(){
if ($("li:first").text() == $(this).text() ){
alert("first");
}
if ($("li:last").text() == $(this).text() ){
alert("last");
}
});
Смотрите это на http://jsfiddle.net/GT7Mm
Комментарии:
1. допустим, несколько элементов имеют один и тот же текст??