Я создал список с использованием PHP с элементами, выбранными из базы данных. Он отлично работает. Но проблема в том, что когда я пытаюсь получить индекс li
с jquery, это дает мне нечетный индекс. Например, когда я нажимаю на первый элемент, он дает эти индексы:
home(index 0: it should be 0)
,about(index 2: actually it should be 1)
,about(index 4: actually it should be 2)
,about(index 6: actually it should be 3)
,about(index 8: actually it should be 4)
,about(index 10: actually it should be 5).
Я использовал цикл while для создания этого id
.
<ul style="list-style:none;">
<?php while($row = $result->fetch_assoc()):?>
<li class="list-group-item"><?=$row['name']?><li>
<?php endwhile ?>
</ul>
JS:
$('ul li').click(function() {
var index = $(this).index();
console.log(index);
})
Вы положили <li>
(открывающий тег) вместо </li>
(закрывающий тег) в свой html. исправьте его, и он решит вашу проблему и даст правильный индекс
<ul style="list-style:none;">
<?php while($row = $result->fetch_assoc()):?>
<li class="list-group-item"><?=$row['name']?></li>
<?php endwhile ?>
</ul>
Это просто взломать, чтобы он работал, вы должны fetchAll
и использовать for
цикла
<ul style="list-style:none;">
<?php $i = 0; while($row = $result->fetch_assoc()):?>
<li class="list-group-item" data-index="$i" ><?=$row['name']?><li>
<?php $i++ ; endwhile ?>
</ul>
$('ul li').click(function() {
var index = $(this).data('index');
console.log(index);
})