Я в основном создаю простой список, и один из объектов в списке выбран. Я выполняю это путем обращения к "выбранному" классу, какой бы ни объект я хочу выбрать. У меня есть две кнопки, которые продвигаются и назад которые пересекают этот список. Однако, когда пользователь добирается до первого или последнего элемента в списке, я хочу сделать сообщение назад. Это - то, где я застреваю, потому что я испытываю затруднения при идентификации, что в настоящее время выбранный пункт не является первым или последним.
Простой пример:
<div id="list">
<p>item 1</p>
<p>item 2</p>
<p class="selected">item 3</p>
</div>
Скажем, пользователь нажимает следующую кнопку в этой точке, которую я проверяю на что-то подобное этому:
if (jQuery('#list p.selected') == jQuery('#list p:last-child'))
//do post back
Однако эта логика возвращает false, который приводит меня полагать, что я приближаюсь к этому неправильный путь.
Каков лучший способ для меня проверить на этот вид логики с помощью jQuery?
Хотя вы можете сравнивать объекты jquery, как показал Мэтт, или просто с помощью оператора индекса
if($("#list p.selected")[0] == $("#list p:last-child")[0])...
, с jQuery это редко требуется. Есть способ получше!
if($("#list p.selected").is(":last-child"))....
или наоборот, более читабельный
if($("#list p:last-child").is(".selected"))....
jQuery является объект, поэтому вы технически сравниваете два разных (но похожих) объекта, что всегда будет ложным.
Попробуйте:
if (jQuery('#list p.selected').get(0) == jQuery('#list p:last-child').get(0))