Javascript正则表达式类名问题
为这个问题的模糊标题道歉 我有下面的JS,它查找带有特定来源图像的img标记。然后,它将img标记替换为span,这样我就可以用图标替换图像/图标Javascript正则表达式类名问题,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,为这个问题的模糊标题道歉 我有下面的JS,它查找带有特定来源图像的img标记。然后,它将img标记替换为span,这样我就可以用图标替换图像/图标 var paths = [ "folder%2Fadd", "folder%2Fclear", "folder%2Fdelete", "folder%2Fedit", "folder%2Fmove", "folder%2Fsort", ]; var fullPaths
var paths = [
"folder%2Fadd",
"folder%2Fclear",
"folder%2Fdelete",
"folder%2Fedit",
"folder%2Fmove",
"folder%2Fsort",
];
var fullPaths = paths.map(function(x) { return "img[src*='" + x + "']"; } );
var imgs = document.querySelectorAll(fullPaths);
for (var i = 0; i < imgs.length; i++) {
var span = document.createElement("span");
span.addClass("iconfont");
span.title = imgs[i].parentNode.title;
imgs[i].parentNode.replaceChild(span, imgs[i]);
}
var路径=[
“文件夹%2添加”,
“文件夹%2清除”,
“文件夹%2删除”,
“文件夹%2Edit”,
“文件夹%2移动”,
“文件夹%2排序”,
];
var fullPaths=paths.map(函数(x){返回“img[src*='”+x+'];});
var imgs=document.queryselectoral(完整路径);
对于(变量i=0;i
到目前为止,一切都很顺利,但还有一个问题我无法解决
除了在.iconfont的span中添加一个类之外,我还想在span-1)被替换的img元素的原始类中添加两个类,以及2)图像源的名称,与我的数组一样,但前面没有“folder/”位
因此,目前我有:
<img class = "tinyicon" src="******/t/edit">
我的脚本在DOM中创建了以下内容:
<span class = "iconfont">
但我希望我的脚本创建以下内容:
<span class = "iconfont tinyicon edit">
这就是我想要的:)
谢谢你看 var路径=[
var paths = [
"folder%2Fadd",
"folder%2Fclear",
"folder%2Fdelete",
"folder%2Fedit",
"folder%2Fmove",
"folder%2Fsort",
];
var fullPaths = paths.map(function(x) { return "img[src*='" + x + "']"; } );
var imgs = document.querySelectorAll(fullPaths);
for (var i = 0; i < imgs.length; i++) {
var img = imgs[i],
iClass = img.className,
iSrc = img.src.split('/').pop(),
span = $('<span />', {'class': 'iconfont '+iClass+' '+iSrc,
title : img.parentNode.title
});
$(img).replaceWith(span);
}
“文件夹%2添加”,
“文件夹%2清除”,
“文件夹%2删除”,
“文件夹%2Edit”,
“文件夹%2移动”,
“文件夹%2排序”,
];
var fullPaths=paths.map(函数(x){返回“img[src*='”+x+'];});
var imgs=document.queryselectoral(完整路径);
对于(变量i=0;i
更改此选项:
var span = document.createElement("span");
span.addClass("iconfont");
为此:
var span = document.createElement("span");
span.className = "iconfont tinyicon edit";
你的
addClass()
无论如何都不会工作,因为span是一个DOM节点,而不是jQuery对象。除了它将整个img源添加为类名之外,它还非常有用,而不仅仅是“folder/”后面的位。但是我已经用“%2F”替换了你的“/”,现在它非常完美,非常感谢!谢谢,这看起来很有希望,但它没有将img源代码添加为类,而是添加了“folder,folder”-也许您的正则表达式代码不太正确?
var span = document.createElement("span");
var className = "iconfont " + imgs[i].className + ' ' + imgs[i].src.match(/([a-z])$/i, '')
span.className = className ;
span.title = imgs[i].parentNode.title;
imgs[i].parentNode.replaceChild(span, imgs[i]);