我试图在CuteNews系统中使用同位素,为了使过滤正常工作,我需要在我的每个同位素项目的类声明中打印一些标识符。与同位素的链接
在CuteNews中,我的新闻条目可以有多个类别分配给它们,所以当我在我的HTML中加载它们时,它们可以属于。“家庭”和“食物”同时出现,可以是第1和第5类。在CuteNews中,提取类别并将其抛入HTML中的唯一方法是使用一个函数将所有类别打印为字符串,如果类别为1、2、5和21,则使用" 1,2,5,21“。如果我需要把它作为同位素中的一个类添加,这是没有好处的,因为这会产生
<div class="isotope-item 1,2,5,21">...content...</div>因此,我需要一些方法将上面的内容(这就是我现在HTML中的结果)转换为
<div class="isotope-item cat1 cat2 cat5 cat21">...content...</div>通过这种方式,我可以将同位素过滤应用于例如所有类,包括cat1,等等。
在我看来,我需要去掉逗号,这可以很容易地使用像这个jQuery查找和替换字符串这样的JS来完成。但是我不想把整个页面上的所有逗号都替换掉!
我怎样才能只瞄准class=“同位素项目”中的“DIV”,并在每个数字前面加上"cat“,然后用空格替换逗号呢?
发布于 2015-05-06 08:39:18
你可以做一个替换,比如
var els = document.getElementsByClassName('isotope-item'),
el, array;
for (var i = 0; i < els.length; i++) {
el = els[i];
el.className = el.className.replace(/(\d+)(,|$|\s)/g, function (all, value) {
return 'cat' + value + ' '
})
}演示:小提琴
https://stackoverflow.com/questions/30071009
复制相似问题