Я создаю код, который отображает информацию пользователя при поиске. Информация пользователя, затем отображается в fieldset
, а также изображение, имя, фамилия и несколько профилей. отображается, а внизу fieldset
добавляется гиперссылка друга:
<a href="#" id="aaf">add as friend</a>
Теперь я хочу использовать метод jquery $post()
для взаимодействия с другой страницей. У меня также есть скрытое поле внутри этого пользователя fieldset
, у которого есть значение идентификатора пользователя. Теперь, когда я создаю функцию щелчка с помощью jquery
, я не могу получить доступ к различным значениям скрытого поля. Теперь я хочу знать, как достичь этой функциональности? Для проверки того, могу ли я получить значение скрытых полей внутри набора кода, я сделал это.
$(document).ready(function () {
$("a#aaf").bind('click', function () {
alert($("#uid").val());
});
});
Но я получаю только значение fieldset
, а не другие. Пожалуйста, помогите мне в этом.
Спасибо заранее.
EDIT: как получить его в каждом событии click tag? Здесь я помещаю еще код,
<?php foreach($query->result() as $row){?>
<fieldset>
<legend>
<?php echo $row->firstname.' '.$row->lastname;?>
</legend>
<img src='<?php echo $row->profile_img_url;?>'/><br>
<a href="#" id="aaf">add as friend</a>
<input name="uid" type="hidden" value='<?php echo $row->uid;?>' id="uid">
</fieldset>
Ответ 1
<a href="javascript:void(0)" class="aaf" id="users_id">add as a friend</a>
на jquery
$('.aaf').on("click",function(){
var usersid = $(this).attr("id");
//post code
})
//другой метод заключается в использовании атрибута datap >
<a href="javascript:void(0)" class="aaf" data-id="102" data-username="sample_username">add as a friend</a>
на jquery
$('.aaf').on("click",function(){
var usersid = $(this).data("id");
var username = $(this).data("username");
})
Ответ 2
Это потому, что ваши скрытые поля имеют повторяющиеся идентификаторы, поэтому jQuery возвращает только первое из набора. Вместо этого дайте им классы, например .uid
, и возьмите их через:
var uids = $(".uid").map(function() {
return this.value;
}).get();
Демо: http://jsfiddle.net/karim79/FtcnJ/
EDIT: скажем, что ваш вывод выглядит следующим образом (уведомление, идентификаторы изменены на классы)
<fieldset><legend>John Smith</legend>
<img src='foo.jpg'/><br>
<a href="#" class="aaf">add as friend</a>
<input name="uid" type="hidden" value='<?php echo $row->uid;?>' class="uid">
</fieldset>
Вы можете настроить "uid" относительно привязанного якоря следующим образом:
$("a.aaf").click(function() {
alert($(this).next('.uid').val());
});
Важно: у вас нет дубликатов идентификаторов. Они вызовут проблемы. Они недействительны, плохи, и вы не должны этого делать.
Ответ 3
Все скрытые поля в вашем полевом наборе используют один и тот же идентификатор, поэтому jquery возвращает только первый. Один из способов исправить это - создать переменную счетчика и объединить ее в каждый скрытый идентификатор поля.