Javascript 将特定类从父级添加到子级

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

我得到了一些带有子元素的列表项。我想要的是,李的每个孩子都能得到一个基于他们父母id的班级。但是所有元素都得到了第一个li的id

HTML

我想让这些元素从它们的父元素li那里获得“post-”的编号


您需要根据特定的
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>