例如,有一个JS代码:
function openAlbum(){ $("#tracks")。html(' some text ...'); var uid = $(" #uid")。val();
$.ajax({ type: "POST", url: "s.php", data: "uid="+uid, success: function(html) { $("#results").empty(); $("#results").append(html); } }); }
这个html / php代码以循环显示:
for ($i = 0; $i < count($searchAlbum); $i++) {
echo '<div id="cover"><form action=""><input type="hidden" id="uid" value="'.str_replace('https://example.com/', '', $searchAlbum[$i]->href).'"/><a href="#" onclick="openAlbum();"><img src="'.$searchAlbum[$i]->images[1]->url.'"/></a><br><br><span>'.$searchAlbum[$i]->name.'</span><input type="submit" style="position: absolute;;left: -99999px;" /></form></div>';
}
问题:目前只点击抓取ID为&#34; uid&#34;的页面上的第一个输入值。
如何从div中输入JS var uid值,单击链接?
P.S。抱歉我的英语不好。
答案 0 :(得分:1)
我要改变你有点做这件事的方式......
<?php
for ($i = 0; $i < count($searchAlbum); $i++) {
?>
<div class="cover">
<form action="">
<input type="hidden" class="uid" value="<?php echo str_replace('https://example.com/', '', $searchAlbum[$i]->href); ?>"/>
<img src="<?php echo $searchAlbum[$i]->images[1]->url; ?>"/>
<span><?php echo $searchAlbum[$i]->name; ?></span>
<input type="submit" style="position: absolute;left: -99999px;" />
</form>
</div>';
<?php
}
?>
脚本:
$(document).on('click','.cover img',openAlbum);
function openAlbum() {
$("#tracks").html('Some text...'); var uid = $(this).parent().find('.uid').val();
$.ajax({
type: "POST",
url: "s.php",
data: "uid="+uid,
success: function(html) {
//$("#results").empty();
//$("#results").append(html);
$("#results").html(html);
}
});
}
这应该涵盖一切。我将所有id转换为类并改变了执行jQuery的方式。
答案 1 :(得分:0)
谢谢大家的帮助! 结果,我将能够解决问题。
JS-代码:
function openAlbum(uid)
{
$("#results").html('Some text...');
$.ajax({
type: "POST",
url: "s.php",
data: "uid="+uid,
success: function(html) {
$("#results").empty();
$("#results").append(html);
}
});
}
HTML代码:
for ($i = 0; $i < count($searchAlbum); $i++) {
?>
<div id="cover"><a href="#" onclick='openAlbum("<? echo $searchAlbum[$i]->id; ?>");'><img src="<? echo $searchAlbum[$i]->images[1]->url; ?>"/></a><br><br><span><? echo $searchAlbum[$i]->name; ?></span></div>
<?
}
答案 2 :(得分:0)
由于HTML中的id必须是唯一的,因此它只取第一个元素的值。如凯西K已回答的那样,使ids唯一或使用类属性。