I have a HTML markup like this:
<p>
<label>Arrive</label>
<input id="from-date1" class="from-date calender" type="text" />
</p>
<p>
<label>Depart</label>
<input id="to-date1" class="to-date calender" type="text" />
</p>
<p>
<label>Arrive</label>
<input id="from-date2" class="from-date calender" type="text" />
</p>
<p>
<label>Depart</label>
<input id="to-date2" class="to-date calender" type="text" />
</p>
I want to get the next element after from dates to get the corresponding to date. (Layout is a little more complex but from date has from-date class and to date has to-date class).
This is I am trying to do, I want to take a from date element and find the next element in the dom with to-date class. I tried this:
$('#from-date1').next('.to-date')
but it is giving me empty jQuery element. I think this is because next
gives the next sibling matching the selector. How can I get the corresponding to-date
?
Use JS. to get the key number from your id. Analysis it than output the number. Use JQ. selecter combine string with you want than + this number. Hope this can help you too.
.next('.to-date')
does not return anything, because you have an additionalp
in betweenYou need
.parent().next().find('.to-date')
.You might have to adjust this if your dom is more complicated than your example. But essentially it boils down to something like this:
edit: It's much better and faster to just look for the ID. The following code searches all from-dates and gets the according to-dates:
Take a look at the example.
try
Couldn't find a direct way of doing this, so wrote a little recursive algorithm for this.
Demo: http://jsfiddle.net/sHGDP/
nextInDOM()
function takes 2 arguments namely the element to start looking from and the selector to match.instead of
you can use:
Code