我正在尝试获取图像子元素源并将其附加到子锚点中。
以下是我一直在尝试的内容:
<?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;它有效,但我不知道我做错了什么。我无法获得图片来源。
答案 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() 。