I am trying to get the index of an element using jQuery to send to a PHP script.
Here is my XHTML
<form action='/accreditation/questions/' method='post' id='questions-form'> <fieldset id='question-0'> <legend>Question</legend> <h3>What colour is grass?</h3> <ul> <li> <input type='radio' name='answer[0]' value='0' id='radio-0-0' /> <label for='radio-0-0'>Green</label> </li> <li> <input type='radio' name='answer[0]' value='1' id='radio-0-1' /> <label for='radio-0-1'>Red</label> </li> <li> <input type='radio' name='answer[0]' value='2' id='radio-0-2' /> <label for='radio-0-2'>Orange</label> </li> </ul> </fieldset> <fieldset id='question-1'> <legend>Question</legend> <h3>how old is alex</h3> <ul> <li> <input type='radio' name='answer[1]' value='0' id='radio-1-0' /> <label for='radio-1-0'>21</label> </li> <li> <input type='radio' name='answer[1]' value='1' id='radio-1-1' /> <label for='radio-1-1'>11</label> </li> <li> <input type='radio' name='answer[1]' value='2' id='radio-1-2' /> <label for='radio-1-2'>23</label> </li> </ul> </fieldset> </form>
I need to get the index of the fieldset elements. I am currently using this each iterator (which I’d like not to change because it has a lot of other functions inside it).
$('#questions-form ul li').each(function() { qIndex = $('fieldset').index($('fieldset', $(this).parent())) });
I’d like qIndex to be the index of fieldset relative to the form. For example, in this case I should have it equal to 0 and 1 (although there would be 6 values because it’s looping through the list elements).
I have played around for a while and have been unable to get the correct index. I keep getting not found (-1).
If it helps, here is the code I’m using to get the list item’s index relative to it’s containing ul element.
index = $('li', $(this).parent()).index(this);
The
LI‘s parent isUL, not thefieldset.I think this will set
qIndexfor you: