2016-02-22 3 views
0

Я беру список данных из своей базы данных, используя цикл. Я зацикливаю один div, но значения меняются в зависимости от того, что у меня есть в базе данных. Я хочу получить идентификатор ссылки, которую я нажимаю на отдельных div. ниже - мои html-коды ...Получение идентификатора элемента цикла при нажатии на jquery

<?php 
$query = $student->conn->prepare('SELECT * FROM groups'); 
$query->execute(); 
$result = $query -> fetchAll(); 
$count = 0; 
foreach ($result as $row) { 
    $count = $count + 1; 
    $groupName = $row['GpName']; 
    $groupAdmin = $row['GpAdmin']; 
    $groupPurpose = $row['GpPurpose']; 
    $output = "42"; 
    echo "<div class='animated flipInY col-sm-4'> 
       <div class='tile-stats'> 
        <div class='icon'><i class='fa fa-tags'></i></div> 
        <div class='count'>$count</div> 
        <h3 id='groupName'>$groupName</h3> 
        <a id='$groupName' class='display' href='#'><p>Click here display group information.</p></a> 
       </div> 
      </div>"; 
} 
?> 

Это код jQuery, который я использую. она работает в консоли, но он не работает на странице:

$('.display').on('click', function() { 
    $(this).next();  
    var id = $(this).prev().val(); 
    alert(id); 
}); 
+1

Посмотрите на [это] (http://stackoverflow.com/a/3239600/1272394). – Drewness

+1

Теперь вы создаете дубликат id ('id = 'groupName''), и это не сработает. Идентификаторы должны быть уникальными. После '.display' не существует' next() '(sibling). Вы можете избавиться от этой строки кода. Обычно 'var id = $ (this) .prev ('h3'). Attr ('id');' [Закройте с помощью 'alert()' для устранения неполадок.] (Http://stravid.com/en/stop- the-javascript-alert-madness /), вместо этого используйте 'console.log()'. –

+0

Опубликовать визуализированный HTML, а не PHP. – j08691

ответ

0

Заявление

Он работает в консоли, но он не работает на странице

заставляет меня думать, что вы используете Ajax, что означает, что вы привязываете событие к тем элементам, которые не существуют. Таким образом, использование события пузырится или связывать события после замены содержимого.

$(document).on('click', '.display', function() { 
    var id = $(this).prev().val(); 
    alert(id); 
}); 
+0

Я согласен с этим, если это запрос ajax, вам понадобится делегирование. – CodeGodie

Смежные вопросы