Вопрос по jquery – получить индекс jquery элемента «td»

6

У меня есть разметка

 <table>
    <tr id="1">
        <td colspan="4">
            <p class="que">
                1. Who are you?</p>
        </td>
    </tr>
    <tr class="ans">
        <td>
            <input type="checkbox" />Student
        </td>
        <td>
            <input type="checkbox" checked="true" />Developer
        </td>
        <td>
            <input type="checkbox" />Other
        </td>
        <td>
            <input type="text" />
        </td>
    </tr>

</table>​​​

Здесь я хочу получить индекс конкретного тд, у которого установлен флажок. Например, здесь должно быть 1. Но я получаю 0 каждый раз, что похоже на индекс строки. Вот код jquery, который я использовал.

   var answers = $('table tr.ans');
 $.each(answers, function () {
  var answer = $(this).find("input[type='checkbox']:checked").index(); 
    alert(answer);                   
  });​

и вотиграть на скрипке Как я могу получить индекс конкретного тд? Спасибо

Ваш Ответ

2   ответа
2

Измените строку на эту:

var answer = $(this).find("input[type='checkbox']:checked").parent().index(); 

Это даст вам индексtd это родительский элемент ввода, который вы выбрали в селекторе jquery.

14

Вы можете сделать это с

$("table tr.ans input[type='checkbox']:checked").parent().index();

Вам просто нужно перейти от флажка обратно до<td>в этот момент прямо звонит.index делает трюк:

If no argument is passed to the .index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.

Увидеть это в действии.

Так как вы делаете это внутри цикла, более правильное соответствие будет

var answer = $(this).find("input[type='checkbox']:checked").parent().index();
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы