I'm basically building a simple list, and one of the items in the list is selected. I'm accomplishing this by having a "selected" class applied to whichever item I want to have selected. I have two buttons that go forward and backward which traverse this list. However, when the user gets to the first or the last element in the list, I want to do a post back. This is where I'm stuck, because I'm having trouble identifying that the currently selected item is not the first or the last.
Simple Example:
<div id="list"> <p>item 1</p> <p>item 2</p> <p class="selected">item 3</p> </div>
Let's say the user presses the next button, at this point I'm checking for something similar to this:
if (jQuery('#list p.selected') == jQuery('#list p:last-child')) //do post back
However, this logic is returning false, which leads me to believe I'm approaching this the wrong way.
What is the best way for me to check for this kind of logic using jQuery?
Approach 2: The == operator is used to compare two JavaScript elements. If both elements are equal then it returns True otherwise returns False.
If they have the same number of protons, they are the same element. If they have different atomic masses, then they are isotopes with different numbers of neutrons in the atoms. The number of electrons does not change the element - merely its ionisation state.
A jQuery object is created from the array elements in the order they appeared in the array; unlike most other multi-element jQuery operations, the elements are not sorted in DOM order. Elements will be copied from the array as-is and won't be unwrapped if they're already jQuery collections.
Although you can compare jquery objects as Matt has shown, or simply with index operator
if($("#list p.selected")[0] == $("#list p:last-child")[0])...
this is rarely needed with jQuery. There is a better way!
if($("#list p.selected").is(":last-child"))....
or the other way round, more readable
if($("#list p:last-child").is(".selected"))....
jQuery is an object, so you're technically comparing two different (but similar) objects, which will always be false.
Try:
if (jQuery('#list p.selected').get(0) == jQuery('#list p:last-child').get(0))
jQuery.get()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With