如何在点击时获取所需的值输入?

时间:2014-12-18 21:39:33

标签: javascript jquery html

例如,有一个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。抱歉我的英语不好。

3 个答案:

答案 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唯一或使用类属性。

相关问题