我想更改多个图片路径,但这有点错误。任何人都可以帮我解决这个问题。代码运行良好,但所有缩略图图像和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>
答案 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/");
});
这样做的好处是,您不会重新查询jQuery已经提供的信息,例如该属性的现有值。