使用javascript只更改类的所有img src的一个字符
我想更改“汽车图像”类中所有图像的src。 但我不必改变整个url。我只想更改一个字符 我想编辑这个-使用javascript只更改类的所有img src的一个字符,javascript,html,image,Javascript,Html,Image,我想更改“汽车图像”类中所有图像的src。 但我不必改变整个url。我只想更改一个字符 我想编辑这个- <div class="car-image"> <img src="/cars/3_large_1.png"> </div> 这是行不通的。 如何在javascript中执行此操作?您设置了错误节点的src allsrc返回您的div而不是图像 试试这个 allsrc[0].childNodes[1].setAttribute("src","/ca
<div class="car-image">
<img src="/cars/3_large_1.png">
</div>
这是行不通的。
如何在javascript中执行此操作?您设置了错误节点的src allsrc返回您的div而不是图像 试试这个
allsrc[0].childNodes[1].setAttribute("src","/cars/3_large_2.png")
您正在设置错误节点的src allsrc返回您的div而不是映像 试试这个
allsrc[0].childNodes[1].setAttribute("src","/cars/3_large_2.png")
使用(jQuery解决方案):$(“img:nth-child(1)”).attr('src',)代码>
n个子(i)
表示i
th图像
例如:
$(“.car\u image img:nth child(1)”).attr('src','/cars/3\u large\u 2.png')代码>
要更改所有图像,只需删除:nth-child()
使用(jQuery解决方案):$(“img:nth-child(1)”).attr('src',)代码>
n个子(i)
表示i
th图像
例如:
$(“.car\u image img:nth child(1)”).attr('src','/cars/3\u large\u 2.png')代码>
要更改所有图像,只要删除:n-child()
,如果可以的话
$(".car-image img").attr("src", "/cars/3_large_2.png");
如果你能做到的话
$(".car-image img").attr("src", "/cars/3_large_2.png");
这个怎么样
var x = document.getElementsByClassName('car-image')[0];
var img = x.getElementsByTagName('img')[0];
img.src = "/cars/3_large_2.png";
这个怎么样
var x = document.getElementsByClassName('car-image')[0];
var img = x.getElementsByTagName('img')[0];
img.src = "/cars/3_large_2.png";
我想更改中所有图像的src
使用javascript的“汽车图像”类
您可以为所有汽车图像类更改,如下所示:
var all=document.getElementsByClassName('car-image');
对于(变量i=0;i
我想更改中所有图像的src
使用javascript的“汽车图像”类
您可以为所有汽车图像类更改,如下所示:
var all=document.getElementsByClassName('car-image');
对于(变量i=0;i
更优雅的解决方案是使用regex替换函数。如果您知道image src模式以及适用于所有image src的类似更改,那么可以构建一个正则表达式。在这种情况下,您可以迭代包含car image
类的元素,找出第一个子节点并更改src attr,而不是逐个更改每个图像src
// find all elements that contains class car-image
var carImgDivs = document.getElementsByClassName('car-image');
// iterate over carImgDivs and execute an imediate function to just pass the
// childNode1 that is the image. Use replace function with regex to find out the
// changed image src value and set the changed src value to childNode1
for(var i = 0; i < carImgDivs.length; i++) (function(childNode1) {
if(childNode1) {
var replacedSrc = childNode1.getAttribute('src').replace(/(_)(\d)/, "$12");
childNode1.setAttribute("src", replacedSrc);
}
})(carImgDivs[i].childNodes[1]);
//查找包含类car image的所有元素
var carImgDivs=document.getElementsByClassName('car-image');
//迭代carImgDivs并执行imediate函数以只传递
//childNode1这就是图像。使用带有regex的replace函数查找
//更改图像src值并将更改的src值设置为childNode1
对于(var i=0;i
对于像/cars/3\u large\u 1.png这样的图像src,正则表达式(41;)(\ d)匹配数字后面的下划线,并捕获这两个数字。替换字符串“$12”
中的$1
表示保持第一个捕获组(下划线)不变,2
表示将第二个捕获组(一个数字)替换为2
。基本上,正则表达式与上图src中的\u1
匹配\uu
是第一个捕获组,1
是第二个捕获组。因此,最后,图像src变为/cars/3_large_2.png
更优雅的解决方案是使用regex替换函数。如果您知道image src模式以及适用于所有image src的类似更改,那么可以构建一个正则表达式。在这种情况下,您可以迭代包含car image
类的元素,找出第一个子节点并更改src attr,而不是逐个更改每个图像src
// find all elements that contains class car-image
var carImgDivs = document.getElementsByClassName('car-image');
// iterate over carImgDivs and execute an imediate function to just pass the
// childNode1 that is the image. Use replace function with regex to find out the
// changed image src value and set the changed src value to childNode1
for(var i = 0; i < carImgDivs.length; i++) (function(childNode1) {
if(childNode1) {
var replacedSrc = childNode1.getAttribute('src').replace(/(_)(\d)/, "$12");
childNode1.setAttribute("src", replacedSrc);
}
})(carImgDivs[i].childNodes[1]);
//查找包含类car image的所有元素
var carImgDivs=document.getElementsByClassName('car-image');
//迭代carImgDivs并执行imediate函数以只传递
//childNode1这就是图像。使用带有regex的replace函数查找
//更改图像src值并将更改的src值设置为childNode1
对于(var i=0;i
对于像/cars/3\u large\u 1.png这样的图像src,正则表达式(41;)(\ d)匹配数字后面的下划线,并捕获这两个数字。替换字符串“$12”
中的$1
表示保持第一个捕获组(下划线)不变,2
表示将第二个捕获组(一个数字)替换为2
。基本上,正则表达式与上图src中的\u1
匹配\uu
是第一个捕获组,1
是第二个捕获组。因此,最后,图像src被更改为/cars/3\u large\u 2.png
为了澄清,您希望.car image
中的每个图像都具有相同的源代码吗?或者你想在整个课程中迭代并增加源代码中的最后一个数字?请查看我的答案,我已经根据你的需要进行了更新。感谢澄清,您希望.car image
中的每个图像都有相同的来源吗?或者你想在整个课程中迭代并增加源代码中的最后一个数字?请查看我的答案,我已经根据你的需要进行了更新。谢谢,这和我的答案是一样的。这和我的答案是一样的。确切地说,我的代码是-