在PHP数组中选择image子元素,获取源并在链接中添加源

时间:2014-06-30 18:53:03

标签: php jquery

我正在尝试获取图像子元素源并将其附加到子锚点中。

以下是我一直在尝试的内容:

<?php 
$sql="SELECT * FROM post ORDER BY id desc";
$query=mysqli_query($sql);
while($row=mysqli_fetch_array($query)){

$id=$row['id'];
$img= $row['img'];


echo "<div class='post' id='$id'>

     <img src='$img' />
     <p><a class='download'>Download</a></p>  
     </div>";
  ?>

的jQuery

$(function(){
var post= $(".post");
var id= $(this).attr("id");
var img= id.siblings("img");
var imgsrc= img.attr("src");
$(".download").attr("href", imgsrc);
});

我试图提醒var ID;它有效,但我不知道我做错了什么。我无法获得图片来源。

2 个答案:

答案 0 :(得分:1)

我正在努力追随你正在做的事情。我假设你在php上输出了你网页上的多个元素。假设您生成的标记看起来像这样:

<div class="post" id="1">
    <img src="imgs/image1.jpg" />
    <p><a class="download">Download</a></p>  
</div>
<div class="post" id="2">
    <img src="imgs/image2.jpg" />
    <p><a class="download">Download</a></p>  
</div>
<div class="post" id="3">
    <img src="imgs/image3.jpg" />
    <p><a class="download">Download</a></p>  
</div>

如果你想迭代所有的.post div并在生成页面后将href添加到anchor标签,你需要做这样的事情来将href注入每个帖子:

(function($){
    $('.post').each(function(){
        var imgsrc= $(this).find('img').prop('src');
        $('.download').prop('href', imgsrc);
    });
})(jQuery);

话虽如此,我不知道为什么你不会直接从你的while子句中的php输出:

<?php 
$sql="SELECT * FROM post ORDER BY id desc";
$query=mysqli_query($sql);
while($row=mysqli_fetch_array($query)){
    $id=$row['id'];
    $img= $row['img'];
    echo '<div class="post" id="$id">
         <img src="$img" />
         <p><a class="download" href="$img">Download</a></p>  
         </div>';
}
?>

答案 1 :(得分:0)

var id = $(this).attr("id");
var img = id.sibling("img");

你无法获得ID属性的兄弟。

var img = $(this).siblings('img');

我认为 .sibling()甚至不是jQuery方法。使用 .siblings()