Javascript 将特定类从父级添加到子级
我得到了一些带有子元素的列表项。我想要的是,李的每个孩子都能得到一个基于他们父母id的班级。但是所有元素都得到了第一个li的id HTML 我想让这些元素从它们的父元素li那里获得“post-”的编号Javascript 将特定类从父级添加到子级,javascript,jquery,html,Javascript,Jquery,Html,我得到了一些带有子元素的列表项。我想要的是,李的每个孩子都能得到一个基于他们父母id的班级。但是所有元素都得到了第一个li的id HTML 我想让这些元素从它们的父元素li那里获得“post-”的编号 您需要根据特定的li元素本身计算类。为此,可以将函数传递给addClass()方法。试试这个: $('.link').addClass(function() { var id = $(this).closest('li').attr('class').split(' ')[1].repla
您需要根据特定的
li
元素本身计算类。为此,可以将函数传递给addClass()
方法。试试这个:
$('.link').addClass(function() {
var id = $(this).closest('li').attr('class').split(' ')[1].replace(/[^0-9]/g, '');
return 'class-' + id;
});
还有一个解决方案:
在这里,可以将所有li放入循环中,然后找到其中的锚点并将类分配给它
$("ul li").each(function(){
var id = $(this).attr('class').split(' ')[1].replace(/[^0-9]/g, '');
$(this).find("a.link").text('class-' + id).addClass("class-"+id); // demo purposes only
});
更新脚本以在所有li上执行循环。这是有效的
<script>
$('ul li').prepend("<a class='link'></a>");
$('li').each(function(i,v){
var v = $(this)[0].className;
v = v.split(' ')[1];
v = v.replace(/[^0-9]/g, '');
v = "class-"+v;
$(this).children('a.link').addClass(v);
$(this).children('a.link').text(v);
});
</script>
$('ul li')。前缀(“”);
$('li')。每个(函数(i,v){
var v=$(this)[0];
v=v.分割(“”)[1];
v=v.替换(/[^0-9]/g');
v=“class-”+v;
$(this.children('a.link').addClass(v);
$(this).children('a.link').text(v);
});
没问题,很乐意提供帮助。很好,实际上我的第一个想法是使用each函数,但我设置了一些错误,无法达到预期的结果。谢谢你的帮助:)欢迎并享受编码
$("ul li").each(function(){
var id = $(this).attr('class').split(' ')[1].replace(/[^0-9]/g, '');
$(this).find("a.link").text('class-' + id).addClass("class-"+id); // demo purposes only
});
<script>
$('ul li').prepend("<a class='link'></a>");
$('li').each(function(i,v){
var v = $(this)[0].className;
v = v.split(' ')[1];
v = v.replace(/[^0-9]/g, '');
v = "class-"+v;
$(this).children('a.link').addClass(v);
$(this).children('a.link').text(v);
});
</script>