改变图像src& href路径

时间:2015-06-13 06:48:02

标签: javascript jquery html

我想更改多个图片路径,但这有点错误。任何人都可以帮我解决这个问题。代码运行良好,但所有缩略图图像和href路径都出现在同一图像源(01_sml.jpg)& (Picture1.jpg)。

js -

$img = $('#adv1 li img');
    $img.attr('src', $img.attr('src').replace("img/","img/_advertorial/00/") );
    $img = $('#adv1 li a');
    $img.attr('href', $img.attr('href').replace("img/","img/_advertorial/00/") );

html -

<ul class="thumbs" id="adv1">
<li><a class="venobox" data-gall="myGallery" href="img/Picture1.jpg"><img src="img/01_sml.jpg" /></a></li>
<li><a class="venobox" data-gall="myGallery" href="img/Picture2.jpg"><img src="img/02_sml.jpg" /></a></li>
<li><a class="venobox" data-gall="myGallery" href="img/Picture3a.jpg"><img src="img/03_sml.jpg" /></a></li>
<li><a class="venobox" data-gall="myGallery" href="img/Picture4.jpg"><img src="img/04_sml.jpg" /></a></li>
<li><a class="venobox" data-gall="myGallery" href="img/Picture5.jpg"><img src="img/05_sml.jpg" /></a></li>
<li><a class="venobox" data-gall="myGallery" href="img/Picture6.jpg"><img src="img/06_sml.jpg" /></a></li>
<li><a class="venobox" data-gall="myGallery" href="img/Picture7.jpg"><img src="img/07_sml.jpg" /></a></li>
<li><a class="venobox" data-gall="myGallery" href="img/Picture8.jpg"><img src="img/08_sml.jpg" /></a></li>
</ul>

3 个答案:

答案 0 :(得分:1)

您需要使用.each来检查每个元素,这样您就不会覆盖所有元素:

$img = $('#adv1 li img');
$img.each(function( i ) {
    $(this).attr('src', $(this).attr('src').replace("img/","img/_advertorial/00/") );
});

$img = $('#adv1 li a');
$img.each(function( i ) {
    $(this).attr('href', $(this).attr('href').replace("img/","img/_advertorial/00/") );
});

答案 1 :(得分:0)

$ img = $('#adv1 li img')返回img元素的数组,因此你需要迭代然后使用.each()函数

before_action :configure_permitted_parameters, if: :devise_controller?

答案 2 :(得分:0)

您可以使用prop的函数重载来为每个元素执行操作并为其分配值:

$('#adv1 li img').prop("src", function(index, existingValue) {
    return existingValue.replace("img/","img/_advertorial/00/");
}); 
$('#adv1 li a').prop("href", function(index, existingValue) {
    return existingValue.replace("img/","img/_advertorial/00/");
}); 

jsFiddle Example

这样做的好处是,您不会重新查询jQuery已经提供的信息,例如该属性的现有值。